Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 单击链接时停止selenium打开新窗口_Python_Selenium_Webdriver_New Window - Fatal编程技术网

Python 单击链接时停止selenium打开新窗口

Python 单击链接时停止selenium打开新窗口,python,selenium,webdriver,new-window,Python,Selenium,Webdriver,New Window,我正在将selenium测试导出到python,并使用shell运行测试。当我点击某个链接时,web驱动程序会打开一个全新的Firefox窗口,然后出现一个错误,说驱动程序在页面上找不到输入选项。我认为问题在于,当它打开新窗口时,驱动程序没有在新窗口上运行,这就是它找不到输入选项的原因。 如何使脚本保持在同一窗口上或将其焦点切换到新窗口 谢谢 我不知道如何在python中实现,但应该有一个函数可以切换到新窗口 在Java中,我执行以下操作: Set<String> available

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


谢谢

我不知道如何在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;
    }
}
Set availableWindows=driver.getWindowHandles();
用于(字符串windowHandle:availableWindows){
driver.switchTo().window(windowHandle);
if(getTitle()包含(标题匹配)){
driver.manage().window().maximize();
返回;
}
}

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

谢谢,它在python中非常类似。`
aw=driver.window\u handles
driver.switch\u到\u窗口(aw[1])
如果只打开了一个窗口,那么原始窗口将是aw[0],新窗口将是aw[1]。如果您打开了更多窗口,那么您可以随时打印并手动输入它们,或者只跟踪它们在列表中的位置。再次感谢MrTi@JohnDemetriou在selenium中,标签确实不是做事的方式。你不能同时运行它们,你必须模拟击键来切换到新选项卡。是的,但是单击链接会在我的浏览器中打开一个新选项卡test@JohnDemetriou哦要切换到新选项卡,我建议通过模拟Ctrl-W键关闭当前选项卡。如果需要打开两个选项卡,请模拟Ctrl-tab。