Selenium

一、多表单切换  driver.switch_to.frame()

iframe  :直接将一个html 页面嵌入另一个html 页面中

switch_to.frame() 默认可以直接取表单的id 或 name 属性 

#切换iframe,一定要一层一层找,层级一旦错误就定位失败
# driver.switch_to.frame('top-frame')
# driver.find_element_by_css_selector('#newtag').send_keys(111)
# iframe = driver.find_element_by_css_selector('iframe[src="/new-index/"]')
# driver.switch_to.frame(iframe)
# driver.find_element_by_css_selector('#newtag').send_keys(111)

# driver.switch_to.frame('baidu-frame')
# driver.find_element_by_css_selector('#kw').send_keys(111)
# driver.switch_to.default_content()#返回到最外层的iframe
# driver.switch_to.parent_frame()#返回到上一层iframe
#最外层->top-frame -> baidu-frame

二、多窗口切换 driver.switch_to.window()
# 获取当前所有打开的窗口的句柄
handles = driver.window_handles
# 获取当前窗口句柄
handle = driver.current_window_handle
# SwitchToWindows接受浏览器TAB的句柄
driver.switch_to.window(handles[1])
# 获取所有的tab名称
# driver.find_element_by_css_selector('[href="/new-index/"]').click()
# all = driver.window_handles
# print(all)
# 切换页面
# driver.switch_to_window(all[1])
# driver.find_element_by_css_selector('#newtag').send_keys(111)
# driver.close() # 光标不会回到上一个页面,需要重新切回
# driver.switch_to_window(all[0])
# driver.quit()
三、警告框处理  driver.switch_to.alert() driver.switch_to.confirm() driver.switch_to.prompt()
方法定位到alert/confirm/prompt,然后使用text/accept/dismiss/send_keys等方法进行操作
e = driver.find_element_by_css_selector('#alert')
e.click()
# print(driver.switch_to.alert.text) #打印弹窗内容
# driver.switch_to.alert.accept() #确认系统弹窗
# driver.switch_to.alert.dismiss()#取消
# 发送文本至警告框。keysToSend :将文本发送至警告框
driver.switch_to.alert.send_keys(keysToSend= 'keysToSend')
四、Select
在UI自动化测试过程中,经常会遇到一些下拉框,如果我们基于Webdriver操作的话就需要click两次,而且很容易出现问题,实际上Selenium给我们提供了专门的Select(下拉框处理模块)。
#应用select 模块必须为select标签编写的下拉框
引入方法: from selenium.webdriver.support.select import Select
# s = driver.find_element_by_xpath('//select[1]')
# Select(s).select_by_index(3) #四川
# Select(s).select_by_value('3')#北京
#当元素中还含有元素的话,就可以在find_element来缩小范围 (self.el)
#is_select 用法
print(driver.find_element_by_css_selector('#on').is_selected())
print(driver.find_element_by_css_selector('#off').is_selected())
五、窗口截图
# 截图  就用这一个
# driver.get_screenshot_as_file('demo1.png')
六、关闭窗口
# 退出并关闭所有页面驱动
# driver.quit()
# 当开启多个时,关闭当前页面
# driver.close()
原文地址:https://www.cnblogs.com/chendai21/p/8954747.html