51Testing软件测试论坛
标题:
selenium的iFrame处理
[打印本页]
作者:
NewDreamTester
时间:
2017-11-9 11:30
标题:
selenium的iFrame处理
本帖最后由 NewDreamTester 于 2017-11-9 11:32 编辑
有时候我们在定位一个页面元素的时候发现一直定位不了,反复检查自己写的定位器没有任何问题,代码也没有任何问题。这时你就要看一下这个页面元素是否在一个iframe中,这可能就是找不到的原因之一。如果你在一个default content中查找一个在iframe中的元素,那肯定是找不到的。反之你在一个iframe中查找另一个iframe元素或default content中的元素,那必然也定位不到。selenium webdriver中提供了进入一个iframe的方法:
WebDriver org.openqa.selenium.WebDriver.TargetLocator.frame(String nameOrId)
也提供了一个返回default content的方法:
WebDriver org.openqa.selenium.WebDriver.TargetLocator.defaultContent()
我们拿2345网址导航来做示例,2345首页的定制天气模块,是一个iframe,
如果我们想去选择其他城市天气必须选进入这个iframe。
那么我先进入这个iframe,然后在进行选择城市的操作(注:选择城市是4.3章节的内容)
核心代码:
driver.switchTo().frame(“city_set_ifr”); //传入的是iframe的ID
注意,进入iframe方法可以传入三种类型不同参数:
int类型 – iframe在页面中的位置,第几个
String类型 – iframe的名字 比如id
WebElement类型 - 这个iframe的元素定位
接下来在进行选择城市的操作
如果要返回到以前的默认content,可以使用:
dr.switchTo().defaultContent();
如果不使用此代码,就不能退出当前iframe,也就是说iframe之外的页面内容你是不能定位和访问的。
作者:
lsekfe
时间:
2017-11-9 13:18
分享的不错,就是图片裂开了!
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2