web自动化测试-selenium多表单切换
一、概述
1、在web应用中会经常遇到frame/iframe表单嵌套页面的应用
2、WebDriver只能在一个页面上对元素进行识别与定位
3、对于frame/iframe表单内嵌的页面上元素无法识别与定位
4、此时就需要切换到frame/iframe表单中
5、通过switch_to.frame()方法进行切换
6、方法说明
switch_to.parent_content() 跳出当前表单,回到上一级表单
switch_to.default_content() 跳到最外层的页面
可以通过frame_name、索引、webelement对象,建议采用webelement对象
1 driver.switch_to.frame('frame_name') 2 driver.switch_to.frame(1)
3 driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))
二、代码实现
1 from selenium import webdriver
2
3 dr = webdriver.Chrome()
4 dr.implicitly_wait(10)
5 dr.get('http://xxxxxxxxxxx')
6
7 #定位到frame元素
8 frame=dr.find_element_by_xpath('xxxxx')
9 dr.switch_to.frame('webelement对象')
10
11 #回到最外层页面
12 dr.switch_to.default_content()
13
14 #返回上一层的frame
15 dr.switch_to.parent_frame('webelement对象')
16
17 dr.quit()