Phantomjs Selenium WebDriver中的自定义头文件[英] Custom headers in Phantomjs Selenium WebDriver

问题描述

根据 this 现在可以修改标头.Atm 我需要在 PhantomJS webdriver 中修改 Accept-Language.此代码不起作用

DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.Accept-Language'] = 'ru-RU'
driver = webdriver.PhantomJS()

是否有可能以某种方式配置 Phantomjs 以发送我的标头?我不在乎在哪里:在 ghostdriver、phantomjs 或 phantomjs-webdriver 中.

解决方案

最新版本(1.9.1) 的 PhantomJS 发布于 2013 年 6 月 5 日.拉取请求已合并 Jun/23/2013.

如果您使用的是 1.9.1 版本的 PhantomJS,自定义标头将不起作用.

你必须自己构建phantomjs或等到phantomjs合并ghostdriver更改并发布新版本.

  • 克隆 PhantomJS 存储库
  • 克隆 ghostdriver 存储库
  • 递归复制 ghostdriver/src/* 到 phantomjs/src/ghostdriver
  • 构建 phantomjs

使用新构建的 phantomjs 我得到以下结果:

from selenium import webdriver

webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.Accept-Language'] = 'ru-RU'
driver = webdriver.PhantomJS()
driver.get('http://httpbin.org/headers')
print(driver.page_source)
<小时>
...
{
  "headers": {
    "Connection": "close",
    "Host": "httpbin.org",
    "Accept-Encoding": "gzip",
    "Accept-Language": "ru-RU",
    "User-Agent": "Mozilla/5.0 (Unknown; Linux i686) AppleWebKit/534.34 (KHTML, like Gecko) PhantomJS/1.10.0 (development) Safari/534.34",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
  }
 ...

更新

使用 PhantomJS 1.9.2+.

本文地址:https://www.itbaoku.cn/post/1739837.html