Selenium goog:chromeOptions 哈希

分享于2022年07月17日 lambda python selenium selenium-webdriver 问答
【问题标题】:Selenium goog:chromeOptions 哈希(Selenium goog:chromeOptions hash)
【发布时间】:2022-01-28 01:40:23
【问题描述】:

我正在尝试在 AWS Lambda (Python) 中运行 Selenium,最近了解到,自 Chromedriver 2.31 版以来,他们将 chromeOptions 更改为 goog:chromeOptions

https://chromedriver.storage.googleapis.com/2.31/notes.txt https://www.selenium.dev/selenium/docs/api/rb/Selenium/WebDriver/Chrome/Options.html

我正在运行 Chromium 86 和 Selenium 3.14。在过去的几个小时里,我一直在对多条错误消息进行故障排除,我怀疑这是我的根本问题,我只是不知道如何将此参数传递给驱动程序或 selenium。我一直在尝试以下没有运气

driver = webdriver.Chrome(options='goog:chromeOptions')

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('goog:chromeOptions')

编辑

这是我正在使用的代码的 sn-p

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('headless')
chrome_options.add_argument('--disable-gpu')

driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://google.com')

非常感谢任何帮助


【解决方案1】:

你没看错。

您必须添加以下导入:

from selenium.webdriver.chrome.options import Options

现在您可以添加任何参数。举个例子:

options = Options()
options.add_argument("start-maximized")

最后:

driver = webdriver.Chrome(options=options)
driver.get("https://www.google.com/")

作为替代,

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("start-maximized")
driver = webdriver.Chrome(options=chrome_options)
driver.get("https://www.google.com/")

更新

ChromeOptions object :大多数特定于 Chrome 的功能都通过 ChromeOptions 对象公开。在某些语言中,这是由 ChromeOptions 类实现的。在其他语言中,它们以所需的功能存储在 goog:chromeOptions 字典下。

例如,在 Ruby :

caps = Selenium::WebDriver::Remote::Capabilities.chrome(

     "goog:chromeOptions" => {"args" => [ "window-size=1000,800" ]})

driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps

  • 谢谢。根据您的示例,我的理解是“goog:chromeOptions”键在哪里出现?我没有看到在任何地方被引用。另外,“开始最大化”与“goog:chromeOptions”有什么关系?我还用我拥有的当前代码编辑了我的 OP。我可能会接受你的替代建议。
  • 查看更新的答案,如果有任何问题,请告诉我。
  • @vboxer00 有任何反馈吗?
  • 是的,很抱歉回复晚了。我的主要问题仍未得到解决,因为我收到一条错误消息“Chrome 无法启动:异常退出”,我认为这与“goog:chromeOptions”有关。您是说对于某些语言,您必须使用 ChromeOptions,而对于其他一些语言,您在传递其他参数时必须使用 goog:chromeOptions?