【问题标题】:Mask headless chrome driver as a headed one?将无头镀铬驱动程序掩盖为有头驱动程序?
【发布时间】:2018-05-03 21:26:09
【问题描述】:

我可以使用 headed chrome 驱动程序加载网页,但是当尝试使用 headless chrome 驱动程序加载同一页面时,驱动程序会卡住。

我已将两者的标头代理设置为相同,但仍然无法连接到页面。

有什么建议吗?

我在想是否有这样的方法

driver.capabilities[“headless”]=False

或者类似的?

可重现的代码:

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36'
chrome_path="/Users/"+pwd.getpwuid(os.getuid())[0]+"/Desktop/chromedriver"

# headless driver
chrome_options=Options()
chrome_options.add_argument("disable-infobars")
chrome_options.add_argument("headless")
chrome_options.add_argument('user-agent={'+user_agent+'}')
driver1=webdriver.Chrome(executable_path=chrome_path, chrome_options=chrome_options)
driver1.set_page_load_timeout(10)
driver1.get("http://www.adidas.com/")

输出:

TimeoutException: Message: timeout
  (Session info: headless chrome=62.0.3202.94)
  (Driver info: chromedriver=2.33.506106 (8a06c39c4582fbfbab6966dbb1c38a9173bfb1a2),platform=Mac OS X 10.13.1 x86_64)

【问题讨论】:

  • 你用的是什么版本的chrome驱动?
  • 我使用的是版本 62.0.3202.94
  • 是的,我做了chrome_options.add_argument("headless"),它是一个无头浏览器。它能够连接到某些页面,但无法访问某些页面。虽然有头驱动程序能够连接到我测试过的所有页面。

标签: python google-chrome selenium driver headless


【解决方案1】:

add_argument 不是"headless",而是"--headless"

所以我们的代码是:

chrome_options=Options()
chrome_options.add_argument("disable-infobars")
chrome_options.add_argument("--headless")

【讨论】:

  • 我认为这无关紧要,我仍然收到超时错误。
  • 你能用完整的错误堆栈跟踪更新问题吗?
猜你喜欢
  • 2011-11-19
  • 2017-12-23
  • 1970-01-01
  • 2018-03-29
  • 2021-04-11
  • 1970-01-01
  • 2015-02-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多