【问题标题】:TimeoutException when using headless option in Selenium在 Selenium 中使用无头选项时出现 TimeoutException
【发布时间】:2021-08-20 20:24:48
【问题描述】:

我正在尝试从一个元素中获取内部 html。但我在无头模式下遇到超时异常。如果我禁用无头,它可以工作。我也需要无头模式的元素。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
options = webdriver.ChromeOptions()
options.headless = True
browser = webdriver.Chrome(executable_path="./driver/chromedriver", options=options)
browser.get("https://inspiring-lewin-33088d.netlify.app")
try:
    element = WebDriverWait(browser, 10).until(
      expected_conditions.presence_of_element_located((By.ID, "zp"))
    )
    s = element.get_attribute('innerHTML')
    print(s)
finally:    
    browser.close()

我尝试过其他解决方案,例如添加

options.add_argument("--window-size=1920,1080") options.add_argument('--start-maximized')

但它们不起作用。感谢您的帮助。

【问题讨论】:

    标签: python selenium headless


    【解决方案1】:

    将 chrome 更新到 v66 并将 chromedriver 更新到 v2.38 并设置以下选项:

    ChromeOptions options = new ChromeOptions(); 
    options.addArguments("--window-size=1920,1080"); 
    options.addArguments("--disable-gpu"); 
    options.addArguments("-- disable-extensions"); 
    options.setExperimentalOption("useAutomationExtension", false); 
    options.addArguments("--proxy-server='direct://'"); 
    options.addArguments("--proxy-bypass-list=*"); 
    options.addArguments("--start-maximized"); 
    options.addArguments("--headless"); 
    

    应该解决问题

    【讨论】:

      猜你喜欢
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      • 2021-10-18
      • 1970-01-01
      • 2021-06-29
      • 2022-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多