这个问题在这里已有答案:
我正在尝试设置一个jenkins服务器来托管我的自动化框架,在亚马逊Linux上使用Selenium-webdriver(3.142.0)和ruby(2.3.7)。如果我尝试使用我的脚本调用chromedriver,它说,
“Selenium :: WebDriver :: Error :: UnknownError:未知错误:Chrome无法启动:异常退出(未知错误:DevToolsActivePort文件不存在)(从chrome位置开始的进程/ usr / bin / google-chrome为no更长时间运行,因此ChromeDriver假设Chrome已崩溃。)(驱动程序信息:chromedriver = 74.0.3729.6(255758eccf3d244491b8a1317aa76e1ce10d57e9-refs / branch-heads / 3729 @ {#29}),platform = Linux 4.14.104-95.84.amzn2。 x86_64 x86_64)“。
我已将我的chromedriver放在'/ var / lib / jenkins / driver / chromedriver'下,并在.bashrc中设置相同的PATH,并为'/ usr / bin / google-chrome'创建了一个符号链接。以下是我正在使用的机器的详细信息:
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"```
require 'selenium-webdriver'
options = Selenium::WebDriver::Chrome::Options.new
options.add_argument("--disable-dev-shm-usage");
options.add_argument('--no-sandbox')
driver = Selenium::WebDriver.for :chrome, options: options
>Expected result: Browser should be invoked.
>Actual result:
Exits with the error "The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed."
Chrome未安装在默认位置。 ChromeDriver检查Chrome是否安装在Linux系统的默认位置/usr/bin/google-chrome
中。如果您在非标准位置使用Chrome,则需要覆盖Chrome二进制位置。
caps = Selenium::WebDriver::Remote::Capabilities.chrome("chromeOptions" => {"binary" => "Actual Path"})