selenium多表单切换

  在web应用中经常会遇到frame嵌套页面的应用,页WebDriver每次只能在一个页面上识别元素,对于frame嵌套内的页面上的元素,直接定位是定位是定位不到的。这个时候就需要通过switch_to_frame()方法将当前定位的主体切换了frame里。

//切换到iframe(id="if")
driver.switchTo().frame("if");
driver.findElement(By.id("kw")).sendKeys("webdriver");
driver.findElement(By.id("su")).click();

switchTo().frame()默认可以直接取表单的id或name属性进行切换。如

//id="if"
driver.switchTo().frame("if");
//name="nf"
driver.switchTo().frame("nf");

     那么如果iframe没有可用的id和name可以通过下面的方式进行定位:

//先通过xpath定位到iframe
WebElementxf=driver.findElement(By.xpath("//iframe[@id='if']"));
driver.switchTo().frame(xf);
//退回上一级表单
driver.switchTo().defaultContent();

     如果完成了在当前表单上的操作可以通过switchTo().defaultContent()方法返回到上一层表单。该方法不用指定某个表单的返回,默认对应与它最近的switchTo().frame()方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值