五、页面中多级frame/iframe的一种处理策略(此问题让我头痛很久,一个字,累啊)

但是悲剧的是frame的切换必须且只能从html的最外层(也就是整个页面最外面的Document对象处)开始一层一层的往目标的frame里切换。如果你的frame存在五级的层次关系,那么浏览器只允许你从root->frame1->frame2->frame3->frame4->frame5,这样你才能进入到你的目标frame中进行DOM操作。然后自动化测试就开始悲剧的一次次的跳进frame中,跳出frame来,每次要定位一个html元素之前都是跳进跳出的~~!(http://www.jenkins.asia/?p=188)

登录系统后,会默认出现此页面,从HTML代码中可以看到,此页面由iframe构成,下面包含2frametopFramebottomFrame),如果需要定位企业普查-报警点元素的话,需要重新的定位frame,定位后,才能进行操作,从最外面一层的iframe-frame(从外向里进行定位),如果确认自己的代码以及路径没有任何问题,对于短时间没有定位出元素,需要在前面加上driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS)在指定时间内查找元素

具体的操作代码如下:

页面没有加载出来就需要点击页面上的元素
这个需要增加一定等待时间,显示等待时间可以通过WebDriverWait util来实现
例如:
a).WebDriverWaituntil实现显示等待等待欢迎页的图片出现再进行其他操作
       WebDriverWait wait = (newWebDriverWait(driver,10));
       wait.until(newExpectedCondition<Boolean>(){
           public Booleanapply(WebDriver driver){
  boolean loadcomplete = driver.switchTo().frame("right_frame").findElement(By.xpath("//center/div[@class='welco']/img")).isDisplayed();
               returnloadcomplete;
           }
       });

b).也可以自己预估时间通过Thread.sleep(5000);//等待5这个是强制线程休息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值