带有无头chrome的Selenium在切换选项卡时无法获取url

问题描述 投票:0回答:2

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

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

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

尝试运行时出现此错误

driver.Url

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

仅供参考,如果不单击第一页上的按钮并切换选项卡,我就无法获取此网址,因为该网址是在单击按钮后自动生成的。

selenium selenium-webdriver selenium-chromedriver headless-browser google-chrome-headless
2个回答
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)

不要忘记根据您的需要在“driver”中添加其他参数。


0
投票

尝试使用这个无头参数:“--headless=new”

© www.soinside.com 2019 - 2024. All rights reserved.