【问题标题】:Protractor + Firefox + docker: invalid argument: can't kill an exited processProtractor + Firefox + docker:无效参数:无法终止已退出的进程
【发布时间】:2018-09-20 07:30:20
【问题描述】:

我曾经工作过,但一周后,我的 Angular E2E 测试在 docker 中运行时无法启动。如果我直接运行它们,它仍然可以正常工作。

protractor.conf.js

exports.config = {
  capabilities: {
    browserName: 'firefox',
    'moz:firefoxOptions': {
      args: [
        '--headless'
      ]
    }
  }
  directConnect: true,
  baseUrl: 'http://localhost:4200',
  framework: 'jasmine',
  ...
}

如果我启动 webdriver:webdriver-manager start

然后是量角器:protractor protractor.conf.js

输出:

I/launcher - Running 1 instances of WebDriver
I/direct - Using FirefoxDriver directly...
E/launcher - invalid argument: can't kill an exited process
E/launcher - WebDriverError: invalid argument: can't kill an exited process
    at Object.throwDecodedError (/tmp/e2e-test/node_modules/selenium-webdriver/lib/error.js:514:15)
    at parseHttpResponse (/tmp/e2e-test/node_modules/selenium-webdriver/lib/http.js:519:13)
    at doSend.then.response (/tmp/e2e-test/node_modules/selenium-webdriver/lib/http.js:441:30)
    at <anonymous>
    at process._tickCallback (internal/process/next_tick.js:188:7)
From: Task: WebDriver.createSession()
    at Function.createSession (/tmp/e2e-test/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
    at Function.createSession (/tmp/e2e-test/node_modules/selenium-webdriver/firefox/index.js:521:41)
    at Direct.getNewDriver (/tmp/e2e-test/node_modules/protractor/built/driverProviders/direct.js:105:33)
    at Runner.createBrowser (/tmp/e2e-test/node_modules/protractor/built/runner.js:195:43)
    at q.then.then (/tmp/e2e-test/node_modules/protractor/built/runner.js:339:29)
    at _fulfilled (/tmp/e2e-test/node_modules/q/q.js:834:54)
    at self.promiseDispatch.done (/tmp/e2e-test/node_modules/q/q.js:863:30)
    at Promise.promise.promiseDispatch (/tmp/e2e-test/node_modules/q/q.js:796:13)
    at /tmp/e2e-test/node_modules/q/q.js:556:49
    at runSingle (/tmp/e2e-test/node_modules/q/q.js:137:13)
E/launcher - Process exited with error code 199

我在 Firefox 62.0 和 60.0.2 上都试过了,没有做任何改动。

【问题讨论】:

    标签: firefox protractor geckodriver gecko


    【解决方案1】:

    在跟踪每个软件的新版本后,我终于发现gecko-driver在4天前收到了new v0.22.0 release,这似乎打破了protractor/selenium。

    现在,我将强制使用 geckodriver v0.21.0,它工作得很好:

    webdriver-manager update  --versions.gecko=v0.21.0
    

    【讨论】:

      【解决方案2】:

      对我来说,running Firefox in headless mode 解决了这个问题。

      【讨论】:

        猜你喜欢
        • 2020-02-22
        • 2020-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-10
        • 2019-03-03
        相关资源
        最近更新 更多