selenium webdriver +java :特殊窗口切换(iframe及弹窗句柄切换getWindowHandle)

窗口分类:iframe

                弹窗

                对话框


对弹窗进行操作:

当在当前页面点击链接,页面跳转到一个新的弹窗,对新弹窗里的元素进行定位需要先进行 窗口句柄切换

实现代码如下:

String winhandleBefore = driver.getWindowHandle();//获得跳转前窗口的句柄
driver.findElement(By.linkText("wiki")).click();//点击链接
this.thread(1000);//线程睡眠1秒
driver.findElement(By.linkText("创建词条")).click();//点击链接,窗口发生跳转,即产生新的弹窗

Set<String> winhandles = driver.getWindowHandles();//获得全部的窗口句柄

/*

*循环获得所有窗口句柄,并判断所有的句柄是否与跳转前窗口的句柄winhandleBefore 相等,如果相等,程序继续执行,不进

*行窗口句柄切换;如果不等,则将跳转后窗口的句柄设置为当前句柄

*/

for ( String winhandleAfter:winhandles ) {
    if ( winhandleBefore.equals(winhandleAfter)) {
        continue;
    }

    driver.switchTo().window(winhandleAfter);

}

WebElement iframe = driver.findElement(By.id("ueditor_0"));//获得iframe

driver.switchTo().frame(iframe);//相对iframe里的内容进行操作,需要先切换到iframe
driver.findElement(By.tagName("body")).sendKeys("123");//给iframe里的body传数据
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值