首页 > 解决方案 > Selenium Chromedriver 无法启动

问题描述

我正在尝试使用 selenium 和 chrome 驱动程序测试我的代码。但是我总是在终端中收到此错误消息。

======================================================================
ERROR: test_input_status (myweb.tests.StorySixFunctionalTest)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/home/fredypasaud/Documents/PPW/story_six/myweb/tests.py", line 58, in setUp
    self.selenium = webdriver.Chrome('./chromedriver',chrome_options = chrome_options)
  File "/home/fredypasaud/Documents/PPW/django01/lib/python3.6/site-packages/selenium/webdriver/chrome/webdriver.py", line 81, in __init__
    desired_capabilities=desired_capabilities)
  File "/home/fredypasaud/Documents/PPW/django01/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__
    self.start_session(capabilities, browser_profile)
  File "/home/fredypasaud/Documents/PPW/django01/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session
    response = self.execute(Command.NEW_SESSION, parameters)
  File "/home/fredypasaud/Documents/PPW/django01/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute
    self.error_handler.check_response(response)
  File "/home/fredypasaud/Documents/PPW/django01/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.WebDriverException: Message: unknown error: Chrome failed to start: exited normally
  (unknown error: DevToolsActivePort file doesn't exist)
  (The process started from chrome location /snap/bin/chromium is no longer running, so ChromeDriver is assuming that Chrome has crashed.)

我将我的 chromedriver 与我的项目的 manage.py 放在同一目录中。这是我的 test.py 中的一些代码

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options

class StorySixFunctionalTest(TestCase):

    def setUp(self):
        chrome_options = Options()
        self.selenium = webdriver.Chrome('./chromedriver',chrome_options = chrome_options)
        chrome_options.add_argument('--dns-prefetch-disable')
        chrome_options.add_argument('--no-sandbox')
        chrome_options.add_argument('--headless')
        chrome_options.add_argument('disable-gpu')
        chrome_options.addArguments("--disable-extensions");
        chrome_options.addArguments("--disable-dev-shm-usage");
        super(StorySixFunctionalTest, self).setUp()

    def tearDown(self):
        self.selenium.quit()
        super(StorySixFunctionalTest, self).tearDown()

    def test_input_status(self):
        selenium = self.selenium
        selenium.get('http://127.0.0.1:8000/index/')

        status = selenium.find_element_by_id('id_status')
        submit = selenium.find_element_by_id('submit')

        status.send_keys("Coba Coba")
        submit.send_keys(Keys.RETURN)

更新 :

我试图通过显示 chromedriver 的日志来调试我的程序,但我得到了这个错误(这很奇怪,因为我安装了 canbera 模块)

Gtk-Message: 14:40:58.177: Failed to load module "canberra-gtk-module"
Gtk-Message: 14:40:58.196: Failed to load module "canberra-gtk-module"

标签: pythondjangoselenium

解决方案


推荐阅读