如何附加到新的浏览器窗口

时间:2014-06-26 16:52:47

标签: python google-chrome selenium selenium-webdriver

在阅读并学习Stackoverflow的大量内容之后,我终于有一个问题,我似乎无法找到答案。

我正在使用Python,Selenium(WebDriver)和Chrome编写一些测试脚本。在其中一个脚本的过程中,必须单击一个链接,在新的Chrome窗口中打开PDF文档。所有这一切都很好,因为新窗口完全按照预期的方式弹出,但是,我无法弄清楚如何让我的代码与新窗口一起工作。

wd = WebDriver()
...

my_link = wd.find_elements_by_css_selector('a')[0]
my_link.click()     #will open the link target in a new window

我尝试过这样的事情:

new_wd = WebDriver()
new_wd = my_link.click()

这不起作用

我也有:

new_wd = WebDriver()
new_wd.get(my_link.get_attribute('href')

这不起作用,因为新的Chrome窗口没有像原始窗口一样登录。

我不知道该怎么做,并且一直在寻找答案。 感谢


所以对此的答案最终是因为我无法获得新窗口。

我最终做的是建立一个我需要与他们的href一起去的链接列表。然后,我不是单击这些链接,而是使用wd.get(listHref)遍历列表,然后返回到原始URL。这种方法符合我的要求,所以我会接受它。

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

要移动到新窗口,您需要获取新窗口的窗口句柄并切换到它。这是链接How to handle the new window in Selenium WebDriver using Java?  虽然代码使用JAVA但python应该类似。