0

详细信息: 1. 浏览器启动一秒钟后关闭,导致下一个测试步骤是设置 cookie 失败。错误:

UnableToSetCookieError: unable to set cookie
  (Session info: chrome=77.0.3865.75)
    at Object.throwDecodedError (/usr/app/node_modules/selenium-webdriver/lib/error.js:550:15)
    at parseHttpResponse (/usr/app/node_modules/selenium-webdriver/lib/http.js:563:13)
    at Executor.execute (/usr/app/node_modules/selenium-webdriver/lib/http.js:489:26)
    at processTicksAndRejections (internal/process/task_queues.js:93:5)
    at async thenableWebDriverProxy.execute (/usr/app/node_modules/selenium-webdriver/lib/webdriver.js:699:17)
    at async loginWithRoles (/usr/app/features/support/pages/common.js:16:3)

设置 cookie 的代码是:

await driver.get(TARGET_HOST)
  await driver.manage().addCookie({
    name: 'token',
    value: tokenValue,
    httpOnly: true,
    domain: TARGET_HOST_DOMAIN,
    path: '/',
    secure: false
  })
  await driver.get(TARGET_HOST)
  return driver.manage().window().setRect({width: 1920, height: 3000})

这些测试一直运行良好,直到 2019 年 9 月 13 日。这与selenoid/chrome:latest更新的日期一致。

我在撰写文件中使用以下 docker 图像: aerokube/selenoid:latest-release selenoid/video-recorder:latest-release selenoid/chrome:latest

Selenium-webdriver:4.0.0-alpha.4

任何调试技巧都会有所帮助

4

1 回答 1

0

我通过domain在设置 cookie 时不添加解决了这个问题。

设置 cookie 的代码现在如下所示:

    await driver.get(TARGET_HOST)
    await driver.manage().addCookie({
    name: 'token',
    value: tokenValue,
    httpOnly: true,
    path: '/',
    secure: false
  })
  await driver.get(TARGET_HOST)

请参阅:https ://bugs.chromium.org/p/chromedriver/issues/detail?id=3141

于 2019-10-07T13:34:11.847 回答