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 来让它工作。