【问题标题】:Why chrome browser doesn't launch when running Selenium chrome driver on Ubuntu 18.04为什么在 Ubuntu 18.04 上运行 Selenium chrome 驱动程序时 chrome 浏览器不启动
【发布时间】:2020-01-30 15:13:22
【问题描述】:

当我尝试使用 Selenium 库和 chromedriver 运行 python 程序时遇到各种错误。我按照 Selenium 网站上的说明安装所有我需要的东西,然后开始编写我的第一行代码:

from selenium.webdriver import Chrome
driver = Chrome() 

我收到此错误消息:

WebDriverException                        Traceback (most recent call last)
<ipython-input-16-dce6fb94cc37> in <module>
      1 from selenium.webdriver import Chrome
      2 
----> 3 driver = Chrome()

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive)
     79                     remote_server_addr=self.service.service_url,
     80                     keep_alive=keep_alive),
---> 81                 desired_capabilities=desired_capabilities)
     82         except Exception:
     83             self.quit()

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in __init__(self, command_executor, desired_capabilities, browser_profile, proxy, keep_alive, file_detector, options)
    155             warnings.warn("Please use FirefoxOptions to set browser profile",
    156                           DeprecationWarning, stacklevel=2)
--> 157         self.start_session(capabilities, browser_profile)
    158         self._switch_to = SwitchTo(self)
    159         self._mobile = Mobile(self)

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in start_session(self, capabilities, browser_profile)
    250         parameters = {"capabilities": w3c_caps,
    251                       "desiredCapabilities": capabilities}
--> 252         response = self.execute(Command.NEW_SESSION, parameters)
    253         if 'sessionId' not in response:
    254             response = response['value']

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py in execute(self, driver_command, params)
    319         response = self.command_executor.execute(driver_command, params)
    320         if response:
--> 321             self.error_handler.check_response(response)
    322             response['value'] = self._unwrap_value(
    323                 response.get('value', None))

~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py in check_response(self, response)
    240                 alert_text = value['alert'].get('text')
    241             raise exception_class(message, screen, stacktrace, alert_text)
--> 242         raise exception_class(message, screen, stacktrace)
    243 
    244     def _value_or_default(self, obj, key, default):

WebDriverException: Message: unknown error: Chrome failed to start: crashed
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /usr/bin/chromium-browser is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

所以我阅读了很多消息,并从以前建议添加选项属性的人那里找到了建议。所以我把我的代码改成这个:

from selenium.webdriver import Chrome
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument('--no-sandbox')
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-extensions')
driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://google.com')

但我仍然没有启动任何浏览器窗口,我无法理解发生了什么......我的日志告诉这个:

/home/lclis/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:8: DeprecationWarning: use options instead of chrome_options

我正在寻找任何建议或建议,我有点迷茫,非常感谢您的帮助和时间阅读我的帖子!

PS:我在 windows10 上,但使用 Ubuntu 应用程序来编码和使用 Jupyter。

【问题讨论】:

  • 如果我没记错的话,因为你添加了headless option,所以浏览器不会打开任何窗口。尝试删除此行:chrome_options.add_argument('--headless')
  • 您好,谢谢您的回答,但我仍然有一条错误消息:`WebDriverException:消息:未知错误:Chrome 无法启动:异常退出(未知错误:DevToolsActivePort 文件不存在) (从 chrome 位置 /usr/bin/chromium-browser 开始的进程不再运行,因此 ChromeDriver 假设 Chrome 已崩溃。)如果您有什么建议? :)
  • 我建议你用新问题发布一个新问题:)
  • 感谢您的帮助,我现在就发布 :)

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


【解决方案1】:

如果我没记错的话,既然你添加了headless选项,浏览器不会打开任何窗口。

尝试删除此行:chrome_options.add_argument('--headless')

【讨论】:

    【解决方案2】:

    这第一条错误消息...

    WebDriverException                        Traceback (most recent call last)
    <ipython-input-16-dce6fb94cc37> in <module>
          1 from selenium.webdriver import Chrome
          2 
    ----> 3 driver = Chrome()
    
    ~/anaconda3/lib/python3.7/site-packages/selenium/webdriver/chrome/webdriver.py in __init__(self, executable_path, port, options, service_args, desired_capabilities, service_log_path, chrome_options, keep_alive)
         79                     remote_server_addr=self.service.service_url,
         80                     keep_alive=keep_alive),
    ---> 81                 desired_capabilities=desired_capabilities)
         82         except Exception:
         83             self.quit()
    

    ...暗示 ChromeDriver 无法启动/产生新的 Browsing ContextChrome Browser 会话。

    理想情况下,您的代码块应该开箱即用,但是当您使用 anaconda3ipython 时,您需要传递 Key executable_path 以及 Value设置为ChromeDriver绝对路径如下:

    from selenium.webdriver import Chrome
    driver = Chrome(executable_path='/path/to/chromedriver') 
    

    但是,在您的第二次代码试验中,您已经非常接近了。这第二条错误消息...

    /home/lclis/anaconda3/lib/python3.7/site-packages/ipykernel_launcher.py:8: DeprecationWarning: use options instead of chrome_options
    

    ...暗示 ChromeDriver 再次无法启动/产生新的 Browsing ContextChrome Browser 会话。

    您应该使用options 而不是chrome_options,如下所示:

    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    chrome_options.add_argument('--no-sandbox')
    chrome_options.add_argument('--headless')
    chrome_options.add_argument('--disable-extensions')
    driver = webdriver.Chrome(options=chrome_options)
    driver.get('https://google.com')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-21
      相关资源
      最近更新 更多