(十三)切换frame
乙醇 创建于 over 7 years 之前
最后更新: less than a minute 之前
阅读数: 193
为什么要切换
当我们要定位的元素位于页面中的iframe或frame标签中时,我们必须将定位的上下文切换到对应的frame中去,否则我们将没有办法定位到frame中的元素,这是套路,可以先无脑记住。
目的
学会使用switchTo().frame(id)方法
switchTo().frame(id)方法详解
- id可以是1个数字,从0开始。switchTo().frame(0)表示切换到页面上的第1个frame,依此类推;
- id也可以是1个WebElement对象,也就是需要切换到的frame;
- id可以是null,等于是调用了switchTo().defaultContent()方法;
switchTo().defaultContent()方法
切换回到主页面,调用这个方法会将定位的上下文切回主页面,此后就可以继续定位主页面上的元素了。
示例代码
var webdriver = require('selenium-webdriver'),
By = webdriver.By;
var dr = new webdriver.Builder().forBrowser('chrome').build();
dr.get('some url');
// 切换到第2个frame进行元素定位
dr.switchTo().frame(1).then(function() {
dr.findElement(By.id('this-element-is-in-frame'));
});
// 切换到第id==example-frame的frame中进行元素定位
dr.findElement(By.id('example-frame')).then(function(iframe) {
dr.switchTo().frame(iframe).then(function() {
dr.findElement(By.id('this-element-is-in-frame'));
});
});
// 切换回主页面
dr.switchTo().defaultContent();