【发布时间】:2014-06-26 16:52:46
【问题描述】:
从 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。这种方法符合我的要求,所以我会采用它。
感谢您的帮助。
【问题讨论】:
-
是否可以在当前窗口中转到该页面?那将是最快的解决方案。否则,您可以从现有的 webdriver 中获取当前的 cookie 并将它们设置在新的 webdriver 中,这样您也可以在那里登录。假设 cookie 已设置。
标签: python google-chrome selenium selenium-webdriver