1

我以两种方式运行 Selenium 测试:

  1. 在本地使用 Chrome WebDriver,用于实施测试
  2. 在带有 Selenium Hub 和 Chrome 节点的 CI 管道中运行测试

后端创建 HttpOnly cookie。我想检查他们的存在。要获取特定的 cookie,我使用以下代码:

driver.Manage().Cookies.GetCookieNamed("CookieFooBar");

这适用于 Chrome WebDriver,但不适用于 Chrome 节点。任何想法,什么可能导致这种不同的行为?

4

1 回答 1

1

这个问题的答案已经在问题本身中。由于 cookie 是 HttpOnly cookie,浏览器无法跟踪它们的存在——尽管它们仍然存在。这实际上是创建 HttpOnly 标志的原因。

出于测试目的,它可能是更好的方法来测试 cookie 应提供的功能,而不是简单地检查它们的存在。

我在没有 docker-compose 的情况下运行了 Chrome WebDriver 测试,这是我在 CI 管道中所做的。这就是浏览器无法看到 HttpOnly cookie 的原因。

于 2019-10-16T12:04:47.667 回答