selenium python chrome 不支持无头模式
selenium python chrome headless mode unsupported
我刚刚开始使用 selenium python
通过单页应用程序解析图像和其他数据。它需要登录。不在 headless
模式时;我的代码有效;我可以提交表格并继续处理其他事情。但是一旦我启用无头模式;它加载页面(通过 driver.save_screenshot()
截屏调试)并在提交时卡住。
....
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(
"./chromedriver", options=chrome_options)
driver.get("")
# driver.save_screenshot() gives the expected result. The form is visible
try:
password_field = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.TAG_NAME, 'input')))
password_field.clear()
password_field.send_keys(ott_key)
submit_button = driver.find_element_by_tag_name("button")
driver.execute_script("arguments[0].click()", submit_button)
# submit_button.click() # tried with submit() as well
driver.save_screenshot("test.png")
# it gets stuck after submitting but only when it is in headless mode. Otherwise it carries on.
....
现在我什至不知道如何开始调试;如您所见,我尝试过更改用户代理;最大化 window;等等
非常感谢您的建议。
编辑
我终于能够调试问题,在 headless 模式下,SPA 不支持它。所以为了减轻我使用
chrome_options.add_argument(
f"user-agent={'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'}")
但这似乎不起作用。有什么建议吗?
遗憾的是我发现了这个问题,那就是该网站专门阻止了无头浏览器。所以我不得不使用 xvfb
(假显示)和 pyvirtualdisplay
来让它工作。
我刚刚开始使用 selenium python
通过单页应用程序解析图像和其他数据。它需要登录。不在 headless
模式时;我的代码有效;我可以提交表格并继续处理其他事情。但是一旦我启用无头模式;它加载页面(通过 driver.save_screenshot()
截屏调试)并在提交时卡住。
....
chrome_options.add_argument("start-maximized")
chrome_options.add_argument("--headless")
driver = webdriver.Chrome(
"./chromedriver", options=chrome_options)
driver.get("")
# driver.save_screenshot() gives the expected result. The form is visible
try:
password_field = WebDriverWait(driver, 20).until(
EC.presence_of_element_located((By.TAG_NAME, 'input')))
password_field.clear()
password_field.send_keys(ott_key)
submit_button = driver.find_element_by_tag_name("button")
driver.execute_script("arguments[0].click()", submit_button)
# submit_button.click() # tried with submit() as well
driver.save_screenshot("test.png")
# it gets stuck after submitting but only when it is in headless mode. Otherwise it carries on.
....
现在我什至不知道如何开始调试;如您所见,我尝试过更改用户代理;最大化 window;等等 非常感谢您的建议。 编辑 我终于能够调试问题,在 headless 模式下,SPA 不支持它。所以为了减轻我使用
chrome_options.add_argument(
f"user-agent={'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36'}")
但这似乎不起作用。有什么建议吗?
遗憾的是我发现了这个问题,那就是该网站专门阻止了无头浏览器。所以我不得不使用 xvfb
(假显示)和 pyvirtualdisplay
来让它工作。