我创建了一个使用 Selenium 的应用程序,使用 .NetCore 在 Linux 上使用它,实际上这是我的代码实现:
public class Program
{
public static async Task Main(string[] args)
{
//Settings for chrome
var chromeOpts = new ChromeOptions();
chromeOpts.AddArgument("headless");
chromeOpts.AddArgument("no-sandbox");
//Get assembly path where chrome driver is located
string codeBase = Assembly.GetExecutingAssembly().CodeBase;
UriBuilder uri = new UriBuilder(codeBase);
string path = Uri.UnescapeDataString(uri.Path);
path = Path.GetDirectoryName(path);
var driver = new ChromeDriver(path, chromeOpts, TimeSpan.FromSeconds(180));
}
}
如您所见,我正在使用 Chrome 作为驱动程序,我下载了它 here ,我还在程序集的文件夹中添加了驱动程序,这样 ChromeDriver 就知道在哪里搜索它了。
在 Linux 上,我使用 chmod -R 777 更改了文件夹权限,但是当我运行我的 Dotnet 应用程序时,我得到了这个:
Selenium 似乎无法启动该应用程序。 查看我得到的异常:
Cannot find Chrome binary
不幸的是我在网上没有找到类似的东西,有人可以帮助我吗?
提前致谢。
更新
我刚刚在我的 Linux 机器上重新安装了 Chrome
,现在上面的错误消失了,但现在还有另一个问题,事实上我得到了这个错误:
OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver=2.9.248304,platform=Linux 4.4.0-130-generic x86_64)
at OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse)
at OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
at OpenQA.Selenium.Remote.RemoteWebDriver.StartSession(ICapabilities desiredCapabilities)
at OpenQA.Selenium.Remote.RemoteWebDriver..ctor(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(ChromeDriverService service, ChromeOptions options, TimeSpan commandTimeout)
at OpenQA.Selenium.Chrome.ChromeDriver..ctor(String chromeDriverDirectory, ChromeOptions options, TimeSpan commandTimeout)\ at ODS.Program.Main(String[] args)
最佳答案
这个错误信息...
OpenQA.Selenium.WebDriverException: unknown error: Chrome failed to start: exited abnormally
...表示 ChromeDriver 无法启动/生成新的 WebBrowser,即 Chrome 浏览器 session 。
您的主要问题是您使用的二进制文件版本之间的不兼容,如下所示:
- 您使用的是非常古老的chromedriver=2.9。
因此 ChromeDriver 版本 (v2.33) 和最近的 Chrome 浏览器 版本 (vVersion 68.0)
解决方案
- 将 ChromeDriver 升级到当前 ChromeDriver v2.41水平。
- 将 Chrome 版本保持在 Chrome v67-69 级别之间。 ( as per ChromeDriver v2.41 release notes )
- 清理您的项目工作区,通过您的IDE 并重建您的项目,仅使用所需的依赖项。
- 如果您的基本 Web Client 版本太旧,请通过 Revo Uninstaller 卸载它。并安装最新的 GA 和发布版本的 Web Client。
- 执行你的
@Test
。
引用资料
您可以在以下位置找到一些相关讨论:
- WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally with ChromeDriver Chrome and Selenium on debian server
- Message: unknown error: Chrome failed to start: exited abnormally on AWS Cloud9 with Linux 4.9.85-38.58.amzn1.x86_64 x86_64
- WebDriverException: Message: unknown error: Chrome failed to start: exited abnormally with ChromeDriver Chrome and Selenium through Python on VPS
关于c# - OpenQA.Selenium.WebDriverException : unknown error: Chrome failed to start: exited abnormally while executing tests through Selenium start on linux,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51720561/