【问题标题】:WebDriverError: unknown error: Chrome failed to start: exited abnormallyWebDriverError:未知错误:Chrome 无法启动:异常退出
【发布时间】:2016-10-08 03:34:12
【问题描述】:

我正在努力实现的目标 在 Ubuntu 14 non gui 上成功地在 headless chrome 上运行我的量角器测试。

设置 使用多个参考页面我已成功安装:Xvfb Chrome 最新浏览器 Protractor 3.3.0 Java 7(也尝试使用 Java 8)并设置 LOCAL_HOME。另外,设法使用this reference.启动Xvfb

量角器配置

exports.config = {
    baseUrl: 'http://<qa environment>',
    framework: 'jasmine',
    seleniumAddress: 'http://localhost:4444/wd/hub',
    jasmineNodeOpts: {
        showColors:true,
        defaultTimeoutInterval: 2500000
    },
     capabilities: {
    'browserName': 'chrome'
  },

    specs: ['administration/*-spec.js'],  //'signinandout/*-spec.js', 'homepage/*-spec.js',
    onPrepare: function(){
        //browser.driver.manage().window().setSize(1280, 1080);
    }
}

异常堆栈跟踪:

/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/error.js:26 构造函数(opt_error){ ^ WebDriverError:未知错误:Chrome 无法启动:异常退出(驱动程序信息: 铬驱动程序=2.21.371461 (633e689b520b25f3e264a2ede6b74ccc23cb636a),平台=Linux 3.13.0-87-generic x86_64)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:60.16 秒 构建信息:版本:'2.52.0',修订:'4c2593c',时间:'2016-02-11 19:06:42' 系统信息:主机:'vagrant-ubuntu-trusty-64',ip: '10.0.2.15',os.name:'Linux',os.arch:'amd64',os.version: '3.13.0-87-generic', java.version: '1.7.0_101' 驱动信息: org.openqa.selenium.chrome.ChromeDriver 在 WebDriverError (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/error.js:26:26) 在 Object.checkLegacyResponse (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/error.js:580:13) 在 /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:64:13 在 Promise.invokeCallback_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:1329:14) 在 TaskQueue.execute_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2790:14) 在 TaskQueue.executeNext_ (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2773:21) 在 /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:2652:27 在 /usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/promise.js:639:7 在 process._tickCallback (internal/process/next_tick.js:103:7) 来自:任务:WebDriver.createSession() 在acquireSession(/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:62:22) 在 Function.createSession (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver.js:295:12) 在 Builder.build (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/builder.js:458:24) 在 Hosted.DriverProvider.getNewDriver (/usr/local/lib/node_modules/protractor/built/driverProviders/driverProvider.js:37:33) 在 Runner.createBrowser (/usr/local/lib/node_modules/protractor/built/runner.js:182:43) 在 /usr/local/lib/node_modules/protractor/built/runner.js:255:30 在 _fulfilled (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:834:54) 在 self.promiseDispatch.done (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:863:30) 在 Promise.promise.promiseDispatch (/usr/local/lib/node_modules/protractor/node_modules/q/q.js:796:13) 在 /usr/local/lib/node_modules/protractor/node_modules/q/q.js:556:49 [01:09:14] E/launcher - 进程退出,错误代码为 1

【问题讨论】:

  • 用 java 8 试过了,结果一样。目前完全没有头绪。
  • 您使用什么版本的 webdriver-manager 来下载二进制文件?您是否尝试过删除这些二进制文件并再次获取它们?在较新版本的 webdriver-manager 中,命令是 webdriver-manager cleanwebdriver-manager update。另外,您是从webdriver-manager start 开始的吗?如果是这样,它开始好吗?这些日志的堆栈跟踪是什么?

标签: google-chrome selenium webdriver protractor headless-browser


【解决方案1】:

检查您的 Google chrome 版本及其与 chrome 驱动程序的兼容性。

您可以从 Chromedriver 网站查看并下载兼容版本。

它对我有用。

【讨论】:

    【解决方案2】:

    可能您的窗口屏幕大小不匹配尝试在 onPrepare 中最大化:

    onPrepare: function(){
    browser.driver.manage().window().maximize();
        }
    

    【讨论】:

    • 感谢您的评论,但这并没有帮助。不幸的是,由于依赖项的数量,失败的原因可能是任何原因,因此很难从这个通用的堆栈跟踪中找出问题所在。
    【解决方案3】:
    1. 打开您的项目并请通过以下命令更新您的 npm 模块。

      project_root:\> npm update
      
    2. 现在使用以下命令将您的 selenium 驱动程序更新到最新版本

      project_root:\> webdriver-manager update  
      
    3. 再次运行测试。

    【讨论】:

      【解决方案4】:

      此处未指定 Xvfb 显示导致的错误。在这里,Selenium 脚本使用没有 GUI 的无头浏览器测试概念运行。

      希望您使用过 chromedriver、chrome 二进制文件和 XVfb。这里 chromedriver 正在初始化 chrome 二进制文件,但 chrome 二进制文件无法使用 XVfb 坐在显示器上。这就是它的抛出错误,因为“Chrome 无法启动:异常退出”

      在执行你的脚本之前请按照以下步骤操作。示例:(在你的Unix服务器(ex.putty)中执行这个cmd)

      usr/bin/Xvfb :2 -ac -screen 0 1280x1024x24 &

      导出 DISPLAY=:2

      它肯定会起作用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-20
        • 2018-02-13
        • 2017-09-07
        • 1970-01-01
        • 2021-04-19
        • 2020-04-21
        • 1970-01-01
        • 2023-01-07
        相关资源
        最近更新 更多