您的位置:首页 > 其它

selenium学习之子页面(iframe)切换以及自动化速度较快的问题

2017-06-26 18:06 316 查看
若定位元素在iframe内,则表示定位元素在页面的子页面中,需要完成页面切换才能找到子页面中的元素

driver.switchTo().frame();

可以通过index,name,id,WebElement定位子页面

操作完以后,需要通过driver.switchTo().defaultContent();切换回主页面

例如:

网易相册,登录页面

WebDriver dr = new FirefoxDriver();
dr.get("http://photo.163.com");
//切换到页面的子页面
dr.switchTo().frame(dr.findElement(By.xpath(
"//iframe[@src='http://blog.163.com/newpage/ursweb/tmpl2/loginurs.html']")));
//切换到页面的子页面
dr.switchTo().frame(dr.findElement(By.id("x-URS-iframe")));
dr.findElement(By.name("email")).sendKeys("xxxxxx");
dr.findElement(By.name("password")).sendKeys("xxxxxx");
dr.findElement(By.id("dologin")).click();
//切换回主页面
dr.switchTo().defaultContent();
dr.switchTo().defaultContent();

返回到最父页面后,点击进入我的相册,一直找不到element,以为是xpath不对,各种修改都不正确,后来设置页面加载等待时间后,成功进入我的相册。自动化速度较快,页面未加载完全的原因。

如:

dr.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);

dr.findElement(By.xpath("//div[@id='J-loginMod']/div/a[1]/span[1]")).click();

dr.quit();
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  selenium 测试
相关文章推荐