Docker让Selenium运行

时间:2019-01-29 19:25:33

标签: python selenium docker selenium-chromedriver

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

  

selenium.common.exceptions.WebDriverException:消息:“ chromedriver”   可执行文件必须位于PATH中。

当我在计算机上运行并使用PATH到chromedriver文件时,代码工作正常,但是docker容器由于隔离而无法看到PATH。我将使用预制的docker映像,但是我需要其他依赖项来运行我的代码,例如smtplib,imapclient和beautifulsoup等。

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

2 个答案:

答案 0 :(得分:0)

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

import os

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

答案 1 :(得分:0)

Docker容器就像一个VM。在图像内有脚本。但不是chromedriver。我会说不要在图像内复制chromedriver。仅复制chromedriver无效。

请改为使用selenium/node-chrome图片,并以容器名称作为容器的主机。

看看这个例子。

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