google-chrome - 远程网络驱动程序上的 Chrome(通过网格)无法启动

标签 google-chrome selenium webdriver watir selenium-grid

我在使用 Grid 上的远程 Webdriver 功能(1 个 Linux 集线器和 1 个带有 Firefox 和 Chrome 的 Linux 节点)启动 Chrome 的 Cucumber 测试时遇到问题。 Firefox 测试进行得很顺利,但 Chrome 返回以下错误:

unknown error: Chrome failed to start: exited abnormally
(Driver info: chromedriver=2.2,platform=Linux 3.2.0-23-generic-pae x86) (WARNING: The server did not provide any stacktrace information)
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException:    java.lang.reflect.InvocationTargetException

Command duration or timeout: 20.67 seconds
Build info: version: '2.30.0', revision: 'dc1ef9c', time: '2013-02-19 00:15:27'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-23-generic-pae',      java.version: '1.7.0_25'
Driver info: org.openqa.selenium.chrome.ChromeDriver (org.openqa.selenium.WebDriverException) (Selenium::WebDriver::Error::UnknownError)

浏览器初始化为:

$profile = Selenium::WebDriver::Chrome::Profile.new
$profile['download.prompt_for_download'] = false
$profile['download.default_directory'] = downloads_path

capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(
    platform: "Linux",
    version: "",
    "chrome.profile" => $profile)

browser = Watir::Browser.new(
    :remote,
    :url => 'http://aut.theurl.net:4444/wd/hub',
    :desired_capabilities => capabilities)

更多信息:

  • 我尝试了 chromedriver 版本 2.3 和 2.2 以及 selenium-server-standalone 2.35 和 2.3,但未成功。
  • 通过终端,chromedriver 成功启动,因此路径似乎没问题。

Chrome 似乎在远程节点上启动但立即失败。我有点没有想法,所以欢迎任何想法或指导。

提前致谢!

======================================

更新:添加了更多控制台日志信息。也许这里有更多信息,但我看不到任何有值(value)的东西。

11:45:47.612 WARN - Exception thrown
java.util.concurrent.ExecutionException: org.openqa.selenium.WebDriverException:       java.lang.reflect.InvocationTargetException
Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-23-generic-pae',   java.version: '1.7.0_25'
Driver info: driver.version: unknown
at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:252)
(...)
Caused by: org.openqa.selenium.WebDriverException:    java.lang.reflect.InvocationTargetException
Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-23-generic-pae',   java.version: '1.7.0_25'
Driver info: driver.version: unknown
at   org.openqa.selenium.remote.server.DefaultDriverFactory.callConstructor(DefaultDriverFactory.java:72)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.newInstance(DefaultDriverFactory.java:56)
    (...)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at      sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.openqa.selenium.remote.server.DefaultDriverFactory.callConstructor(DefaultDriverFactory.java:62)
    ... 9 more
Caused by: org.openqa.selenium.WebDriverException: unknown error: Chrome failed to start:     exited abnormally
  (Driver info: chromedriver=2.2,platform=Linux 3.2.0-23-generic-pae x86) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 20.53 seconds
Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-23-generic-pae',  java.version: '1.7.0_25'
Driver info: org.openqa.selenium.chrome.ChromeDriver
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at     sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    (...)
11:45:47.612 WARN - Exception: unknown error: Chrome failed to start: exited abnormally
  (Driver info: chromedriver=2.2,platform=Linux 3.2.0-23-generic-pae x86) (WARNING: The   server did not provide any stacktrace information)
Command duration or timeout: 20.53 seconds
Build info: version: '2.35.0', revision: 'c916b9d', time: '2013-08-12 15:42:01'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '3.2.0-23-generic-pae',   java.version: '1.7.0_25'
Driver info: org.openqa.selenium.chrome.ChromeDriver

最佳答案

终于成功了!

我改变了两件事:

  • 使用不同的 chromedriver(linux64 而不是 linux32)
  • 使用 Dwebdriver.chrome.driver 开关在命令中包含 chromedriver 路径:

    java -jar ./selenium-server-standalone-2.35.0.jar - Dwebdriver.chrome.driver='/opt/drivers/chromedriver' -role webdriver -hub  http://192.168.1.10:4444/grid/register -port 5566 -browser browserName=chrome,maxInstances=5,platform=LINUX &
    

非常感谢您的引用:)

关于google-chrome - 远程网络驱动程序上的 Chrome(通过网格)无法启动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19030230/

相关文章:

javascript - 什么会导致浏览器 (Chrome) 生成下载

javascript - 等待 ServiceWorker 完成注册后再订阅

selenium - 如何在 Intern/Leadfoot(不是浏览器/客户端)中轮询条件?

用于测试自动化框架的Java空指针异常

google-chrome - 在Chrome中避免在HTTP上使用NavigatorUserMediaError "Only secure origins are allowed"

php - Laravel Dusk NoSuchElementException/无法定位元素

java - Selenium 基于 Alt 的点击图片链接(含引用)

java - native 事件在带有 selenium 的不同版本的 Firefox 上表现不同

java - Webdriver 2.28 是否会在出现异常/失败/错误时自动截屏?

python - 如何等待用户在使用 python 的 Selenium 网络驱动程序中单击按钮?