【问题标题】:Is there a way to use a selenium webdriver without showing the browser?有没有办法在不显示浏览器的情况下使用 selenium webdriver?
【发布时间】:2020-06-02 20:12:34
【问题描述】:

我尝试在此站点上搜索解决方案,因为有一个问题与我的几乎相同。可悲的是,这对我不起作用。下面的代码是我现在所拥有的......是否可以在不实际显示过程的情况下启动 webdriver?

# Options
options = Options()
options.add_argument('--headless')
options.add_argument('--disable-gpu')


# Gegevens
password = input("Please give us a password you want to use for all your account(s): ")


# Start de driver
url = 'https://twitter.com/?lang=en-gb'
driver = webdriver.Chrome('/Users/ducov/Downloads/chromedriver')
driver = webdriver.Chrome(chrome_options=options)
driver.set_window_size(1600, 800)
driver.get(url)

编辑: 我通过替换答案中的代码来修复它:

driver = webdriver.Chrome('/Users/ducov/Downloads/chromedriver')
driver = webdriver.Chrome(chrome_options=options)

我仍然收到错误:

C:/Users/ducov/PycharmProjects/bot/app.py:18: DeprecationWarning: use options instead of chrome_options
  driver = webdriver.Chrome('/Users/ducov/Downloads/chromedriver', chrome_options=options)

但我认为这并不重要

【问题讨论】:

  • 你卡在哪里了?你看到了什么错误?
  • driver = webdriver.Chrome(chrome_options=options) 这是错误开始的那一行:
  • 错误真的很长,DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome(chrome_options=options) 可能有用吗? FileNotFoundError: [WinError 2] The system cannot find the file specified 在处理上述异常过程中,又出现了一个异常: Traceback (most recent call last): File "C:/Users/ducov/PycharmProjects/bot/app.py",第 19 行,在 driver = webdriver.Chrome(chrome_options=options),
  • 用所有这些信息更新主要问题。
  • 好了,我更新了。

标签: python selenium selenium-webdriver selenium-chromedriver google-chrome-headless


【解决方案1】:

你已经够近了。

首先,chrome_options 现在已弃用,您必须改用 options

  • Implementation:

    if chrome_options:
        warnings.warn('use options instead of chrome_options', DeprecationWarning)
        options = chrome_options
    

其次,您只想初始化单个 Chrome 浏览上下文,因此您需要在单个 ChromeDriver / Chrome中传递两个参数> 初始化如下:

# Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

# Gegevens
password = input("Please give us a password you want to use for all your account(s): ")

# Start de driver
url = 'https://twitter.com/?lang=en-gb'
driver = webdriver.Chrome(executable_path='/Users/ducov/Downloads/chromedriver', options=chrome_options)
driver.set_window_size(1600, 800)
driver.get(url)

【讨论】:

  • 谢谢,我的程序现在可以完全运行,没有错误。
  • 当然!你能看看我刚刚发布的另一个问题吗?我会很感激的!
【解决方案2】:

你应该把execute_pathchrome_options放在同一行。

driver = webdriver.Chrome('/Users/ducov/Downloads/chromedriver', chrome_options=options)

ps:在您的代码中,您运行 2 个 Chrome 实例,一个是 webdriver.Chrome('/Users/ducov/Downloads/chromedriver'),另一个是 webdriver.Chrome(chrome_options=options)

【讨论】:

  • 谢谢,我认为这可行,但现在我收到此错误:DeprecationWarning: use options instead of chrome_options driver = webdriver.Chrome('/Users/ducov/Downloads/chromedriver', chrome_options=options)。这真的重要吗?
  • 这意味着 selenium 将在以后的版本中将参数 chrome_options 替换为 options,您可以将其替换为 options 以避免此警告。
猜你喜欢
  • 2021-12-04
  • 2019-04-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-01
  • 1970-01-01
相关资源
最近更新 更多