在Docker上运行时,文件ChromeDriver不存在

sauutmhj  于 2022-10-04  发布在  Docker
关注(0)|答案(2)|浏览(272)

我正在尝试使用C#中的Azure函数在Docker上运行Selify。我已经安装了Selenium.WebDriver和Selenium.WebDriver.ChromeDriver Nuget包。在docker文件中,我也放置了安装Chrome驱动程序的代码,但当我试图在代码中创建ChromeDriver时,我得到了异常,找不到ChromeDriver。

当我列出目录中的所有文件时,可以看到列出了chromedriver.exe文件:

但当我尝试使用下面这行代码创建一个新的Chrome驱动程序时:

  1. IWebDriver driver = new ChromeDriver(Environment.CurrentDirectory);

我得到了以下例外:

文件/home/site/wwwroot/bin/Debug/netcoreapp3.1/chromedriver不存在。该驱动程序可从http://chromedriver.storage.googleapis.com/index.html下载。

为什么无法识别chromedriver.exe文件?当我在没有Docker的情况下运行相同的代码时,一切都运行得很好。

0aydgbwb

0aydgbwb1#

将chromedriver.exe的绝对路径添加到容器路径环境变量中

tnkciper

tnkciper2#

通常,Windows可执行文件以.exe结尾,而Linux可执行文件没有文件扩展名。在Linux上可以执行的文件是文件权限的结果,而不是某种命名约定。

异常消息中的文件路径使用正斜杠/作为文件路径分隔符,而不是反斜杠\,这让我相信您下载了与Windows兼容的ChromeDriver,您正尝试在Linux计算机上运行该驱动程序。

解决方案:通过Docker部署时,改为下载Linux驱动。

相关问题