【问题标题】:How to fix 'chromedriver.exe' executable needs to be in PATH` in Github Actions?如何修复“chromedriver.exe”可执行文件需要在 Github Actions 的 PATH 中?
【发布时间】:2021-03-05 10:39:18
【问题描述】:

我有一个这样的基本测试:

当我在本地做时:

from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium import webdriver

class TestKundeSeite(StaticLiveServerTestCase):

    @classmethod
    def setUp(cls):
        cls.browser = webdriver.Chrome(r'crm\tests\chromedriver.exe')

    @classmethod
    def tearDownClass(cls):
        cls.browser.quit()
        super().tearDownClass()

    def test_kunde_anlegen(self):
        self.browser.get('%s%s' % (self.live_server_url, '/crm/kunde_anlegen'))
        vorname_input = self.browser.find_element_by_name("vorname")
        vorname_input.send_keys('Max')
        nachname_input = self.browser.find_element_by_name("nachname")
        nachname_input.send_keys('Mustermann')
        email_input = self.browser.find_element_by_name("email")
        email_input.send_keys('max@hotmail.de')
        telefon_input = self.browser.find_element_by_name("telefon")
        telefon_input.send_keys('+4917666994073')
        web_input = self.browser.find_element_by_name("web")
        web_input.send_keys('max.de')
        notiz_input = self.browser.find_element_by_name("notiz")
        notiz_input.send_keys('Beispielnotiz')
        self.browser.find_element_by_xpath('//input[@value="Speichern"]').click()

当我这样做时:

python manage.py test

效果很好。

但是当我将它推送到 Github 时,我在 Github Actions 中收到以下错误

selenium.common.exceptions.WebDriverException: Message: 'crm\tests\chromedriver.exe' executable needs to be in PATH.

我该如何克服这个问题?

【问题讨论】:

  • 还是真实的?请显示 github-actions 的完整脚本。
  • 我解决了这个问题:在setUp-function中,我添加了chrome_options.add_argument('--no-sandbox') chrome_options.add_argument('--headless') chrome_options.add_argument('-- disable-gpu')cls.browser = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options)
  • 太棒了!我以你为荣。我找到了一个没有无头模式的解决方案。如果您有兴趣,可以添加作为答案:)

标签: python django selenium github github-actions


【解决方案1】:
selenium.common.exceptions.WebDriverException: Message: 'crm\tests\chromedriver.exe' executable needs to be in PATH.

问题根源

问题是你得到的异常告诉它找不到 webdriver。 它可以手动解决,但我更喜欢使用库webdriver_manager

解决办法:

from django.contrib.staticfiles.testing import StaticLiveServerTestCase
from selenium.webdriver.chrome.webdriver import WebDriver
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager # <--- add this

class TestKundeSeite(StaticLiveServerTestCase):

    @classmethod
    def setUp(cls):
        cls.browser = webdriver.Chrome(ChromeDriverManager().install()) # <--- change this

webdriver_manager 由 pip install webdriver_manager 安装

【讨论】:

  • 谢谢兄弟,我已经有了解决方案,但答案很好!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-04-25
  • 2019-05-28
  • 2021-06-16
  • 2020-12-02
  • 2018-10-31
  • 2020-07-22
  • 1970-01-01
相关资源
最近更新 更多