切换标签页时,无头铬的硒无法获取网址

时间:2018-08-08 19:14:22

标签: selenium selenium-webdriver selenium-chromedriver headless-browser google-chrome-headless

我目前正在使用Specflow运行Selenium。

我的一项测试单击了一个按钮,该按钮触发了pdf文件的下载。 该文件将在新选项卡中自动打开,然后在测试中获取URL,然后将引用的文件直接下载到selenium项目。 当chrome驱动程序正常运行但在无头浏览器上失败并出现以下错误时,整个过程可以完美运行:

  

对远程WebDriver服务器的URL http://localhost:59658/session/c72cd9679ae5f713a6c857b80c3515e4/url的HTTP请求超时   60秒后。 ->请求被中止:操作已超时。

尝试运行driver.Url

时发生此错误

driver.Url调用在代码中的其他地方起作用。只有在无头浏览器切换选项卡后,它才会失败。 (是的,我正在使用驱动程序切换窗口)

作为参考,如果不单击第一页上的按钮并切换选项卡,我将无法获得该URL,因为单击按钮后会自动生成该URL。

1 个答案:

答案 0 :(得分:0)

我相信您只是将参数用作“ --headless”以获得更好的性能,因此您也应该选择屏幕尺寸。有时,由于屏幕尺寸不合适,它无法检测到您正在寻找的功能。尝试使用此代码,或仅添加一行作为大小。

from selenium import webdriver
chrome_options = Options()
chrome_options.add_argument("--headless")
chrome_options.add_argument("--window-size=1920x1080")
driver = webdriver.Chrome(chrome_options=chrome_options)

请不要忘记根据需要在“驱动程序”中添加其他参数。