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()

猜你喜欢

转载自www.cnblogs.com/puti306/p/11877469.html