webdriver - 在selenium中设置请求头

标签 webdriver capybara selenium-webdriver

我正在尝试设置请求 header “Referer”来欺骗来自其他站点的请求。我们需要进行使用特定引用者的能力测试,该引用者将返回特定的表单给用户,否则给出替代的表单。

我可以通过以下方式在 poltergeist 中执行此操作:

page.driver.headers = {"Referer" => referer_string}

但我找不到 selemium 驱动程序的等效功能。

如何在 capybara selenium 驱动程序中设置请求 header ?

最佳答案

Webdriver 不包含执行此操作的 API。请参阅issue 141 from Selenium tracker了解更多信息。该问题的标题说它与响应 header 有关,但决定 Selenium 不会在此问题范围内包含请求 header 的 API。有关添加 API 来设置请求 header 的几个问题已被标记为重复项:first , second , third .

以下是我可以提出的几种可能性:

  1. 使用另一个驱动程序/库代替 selenium
  2. 编写一个特定于浏览器的插件(或查找现有插件),以允许您添加请求 header 。
  3. 使用browsermob-proxy或其他一些代理。

在大多数情况下我会选择选项 3。这并不难。

请注意Ghostdriver has an API for it但其他驱动程序不支持它。

关于webdriver - 在selenium中设置请求头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15645093/

相关文章:

java - 如何通过 Selenium 和 Java 使用 AShot 库截取整页截图

ruby - 选中表格中的复选框

ruby-on-rails - Capybara::ElementNotFound: 无法找到 css "a"

java - 如何使用 JAVA 在 Selenium WebDriver 中打开 Chrome 开发者控制台

java - 如何获取雅虎主页顶部面板中的链接/项目数?

java - 使用 Selenium Webdriver 和 HtmlUnit 下载网页内容

selenium - 使用 Selenium 在 InPrivate 模式下打开 Edge

php - 如何使用 Selenium webdriver 获取浏览器 sessionId

python - 如何在每个请求上使用 selenium python 轮换各种用户代理

ruby - 从 Cucumber/Capybara 测试中执行 JavaScript