【问题标题】:Stop selenium from opening a new window when clicking on a link单击链接时阻止 selenium 打开新窗口
【发布时间】:2013-08-10 20:47:22
【问题描述】:

我正在将我的 selenium 测试导出到 python 并使用 shell 运行测试。我到达某个点,我单击一个链接,然后网络驱动程序打开一个全新的 Firefox 窗口,然后我收到一条错误消息,指出驱动程序在页面上找不到输入选项。我认为问题在于,当它打开新窗口时,驱动程序没有在新窗口上运行,这就是它找不到输入选项的原因。 如何让脚本留在同一个窗口上或将其焦点切换到新窗口?

谢谢!

【问题讨论】:

    标签: python selenium webdriver new-window


    【解决方案1】:

    我不知道在python中怎么做,但是应该有切换到新窗口的功能。

    在 Java 中,我这样做:

    Set<String> availableWindows = driver.getWindowHandles();
    for (String windowHandle : availableWindows) {
        driver.switchTo().window(windowHandle);
        if (getTitle().contains(TITLE_TO_MATCH)){
               driver.manage().window().maximize();
                return;
        }
    }
    

    (想要的函数是driver.switchTo().window(NameOrHandle))

    【讨论】:

    • 谢谢,这在python中非常相似。`aw = driver.window_handlesdriver.switch_to_window(aw[1])如果你只打开一个窗口,那么原来的窗口会是aw[0],新的窗口会是aw[1] .如果您打开了更多窗口,那么您可以随时将它们打印出来并手动输入,或者只跟踪它们在列表中的位置。再次感谢 MrTi
    • @JohnDemetriou 选项卡确实不是在 selenium 中做事的方式。您不能同时运行它们,您必须模拟击键才能切换到新选项卡。
    • 是的,但点击链接会在我的测试中打开一个新标签
    • @JohnDemetriou 哦。要切换到新选项卡,我建议通过模拟按键 Ctrl-W 来关闭当前选项卡。如果您需要打开两个选项卡,则模拟 Ctrl-Tab。
    猜你喜欢
    • 1970-01-01
    • 2014-11-02
    • 2015-10-14
    • 2010-12-23
    • 2010-12-01
    • 1970-01-01
    • 2011-10-19
    • 2014-09-11
    • 1970-01-01
    相关资源
    最近更新 更多