【问题标题】:Docker getting Selenium to runDocker 让 Selenium 运行
【发布时间】:2019-06-23 00:13:45
【问题描述】:

我正在尝试在 docker 中使用 Selenium 运行 python 脚本。由于脚本位于 docker 容器中,我不断收到此错误:

selenium.common.exceptions.WebDriverException:消息:'chromedriver' 可执行文件需要在 PATH 中。

代码工作得很好,当我在我的计算机上运行它并将PATH 用于chromedriver 文件时,但是docker 容器看不到PATH,因为它是隔离的。我会使用预制的 docker 映像,但是我需要其他依赖项才能运行我的代码,例如 smtplib、imapclient 和 beautifulsoup 等等。

是否有命令告诉 Selenium chromedriver 与脚本位于同一文件夹中,或者通过其他方式使其对 docker 可见?

【问题讨论】:

    标签: python selenium docker selenium-chromedriver


    【解决方案1】:

    Docker 容器就像一个虚拟机。在图像中,您有脚本。但不是chromedriver。我想说不要在图像中复制 chromedriver。仅仅复制chromedriver 是行不通的。

    改为使用selenium/node-chrome 图像并将容器名称作为容器的主机。

    看看这个例子。

    http://www.testautomationguru.com/selenium-webdriver-how-to-run-multiple-test-suites-using-docker-compose/

    【讨论】:

    • 抱歉,我忘了提及我的程序具有的其他依赖项。有没有办法可以查看这个 docker 镜像的 dockerfile?
    • @Toby 这是 github 上 selenium/node-chrome 的 docker 文件的链接:selenium/node-chrome
    【解决方案2】:

    您可以使用以下代码 sn-p 在脚本中设置 chrome 驱动程序的路径:

    import os
    
    path_to_chrome_driver = os.path.join(os.getcwd(), 'chromedriver.exe')
    browser = webdriver.Chrome(executable_path=path_to_chrome_driver )
    

    【讨论】:

      猜你喜欢
      • 2017-03-21
      • 2021-10-02
      • 2019-06-18
      • 1970-01-01
      • 2020-01-26
      • 1970-01-01
      • 2020-07-26
      • 1970-01-01
      • 2018-03-12
      相关资源
      最近更新 更多