selenium多表单切换以及多窗口切换、警告窗处理
selenium表单切换
在做UI自动化,有时候要定位的元素属性在页面上明明是唯一的。却怎么也不执行对元素的操作动作,这时候多半是iframe表单在作怪。
- 切入表单:id
driver.switch_to_frame("id")
#id属性值切入表单 - 切入表单:name
driver.switch_to_frame("name")
#name属性值切入表单 - 切入表单默认取表单的id或name属性,如果没有id或name属性值,下通过xpath或css定位,然后再将定位对象传给switch_to_frame()
value = driver.find_element_by_xpath("//input[@text='kw']")
driver.switch_to_frame(value)
- 返回上级表单
driver.switch_to_parent_content()
- 返回最外层表单
driver.switch_to_default_content()
selenium窗口切换
- 获得当前窗口句柄
driver.current_window_handle
- 获得所有窗口句柄
driver.window_handles
- 切换到相应的窗口,跟切换表单类似
driver.switch_to_window("value")
警告窗处理
- 解除警告窗:dismiss()
driver_switch_to_alert().dismiss()
- 接受警告窗:accept
driver_switch_to_alert().accept()
- 获取警告窗文本信息:text
driver.switch_to_alert().text
- 发送文本信息到警告窗:send_keys()
driver.switch_to_alert().send_keys("value")