Capybara:如何在导航/加载页面之前设置 cookie

发布于 2025-01-11 07:01:49 字数 358 浏览 4 评论 0原文

如何在使用 Capybara 导航之前设置 cookie?以下代码引发异常:

page.driver.browser.manage.add_cookie(
  name: "name",
  value: "value",
  path: "/",
)
Selenium::WebDriver::Error::InvalidCookieDomainError:
       invalid cookie domain
         (Session info: headless chrome=98.0.4758.109)

How can I set a cookie before navigation with Capybara? The following code raises an exception:

page.driver.browser.manage.add_cookie(
  name: "name",
  value: "value",
  path: "/",
)
Selenium::WebDriver::Error::InvalidCookieDomainError:
       invalid cookie domain
         (Session info: headless chrome=98.0.4758.109)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

酒绊 2025-01-18 07:01:49

Selenium Webdriver 的最新版本支持从驱动程序发送 Chrome DevTools 协议 (CDP) 命令(这对于其他驱动程序是可能的,例如 Cuprite 也)。

结果是 CDP Network.setCookie< /a> 命令允许指定域 - 允许您在导航到站点之前设置 cookie。

这是 Capybara + Selenium Webdriver 示例:

page.driver.browser.execute_cdp(
  "Network.setCookie",
  domain: "example.com",
  name: "name",
  value: "value",
  path: "/",
)

Recent versions of Selenium Webdriver support sending Chrome DevTools Protocol (CDP) commands from the driver (this is possible with other drivers like Cuprite too).

Turns out the CDP Network.setCookie command allows one to specify a domain – allowing you to set cookies before navigating to a site.

Here's a Capybara + Selenium Webdriver example:

page.driver.browser.execute_cdp(
  "Network.setCookie",
  domain: "example.com",
  name: "name",
  value: "value",
  path: "/",
)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文