为了账号安全,请及时绑定邮箱和手机立即绑定

Java selenium 中使用click()方法点击超链接无效 用window.open()

Java selenium 中使用click()方法点击超链接无效 用window.open()

慕桂英4014372 2018-11-24 19:32:06
用 a.click(); 无效 明明其他时候都可以的而且就算那我获取了href 在用js打开也没反应  这是为什么呢 ((JavascriptExecutor)driver).executeScript("window.open('"+href+"')");      ((JavascriptExecutor)driver).executeScript("alert('"+href+"')");          alert能弹出但是window.open()就没反应 在网页中控制台直接敲都好使
查看完整描述

1 回答

?
守候你守候我

TA贡献1802条经验 获得超10个赞

window.open()打开的是新标签,你需要切换handles。给你两个方法参考:

    public static void changeWindow(WebDriver driver){

        // 获取当前页面句柄

        String handle = driver.getWindowHandle();

        // 获取所有页面的句柄,并循环判断不是当前的句柄,就做选取switchTo()

        for (String handles : driver.getWindowHandles()) {

            if (handles.equals(handle))

                continue;

            driver.switchTo().window(handles);

        }

    }

    public static void changeWindowTo(WebDriver driver,String handle){

        for (String tmp : driver.getWindowHandles()) {

            if (tmp.equals(handle)){

                driver.switchTo().window(handle);

                break;

            }

        }

    }

至于click不了,可能是因为那个元素不显式可见,或者需要聚焦,或你用Selenium操作不当,不过建议可以尝试js click

查看完整回答
反对 回复 2018-12-18
  • 1 回答
  • 0 关注
  • 765 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信