Phantomjs Selenium WebDriver中的自定义标题

dim*_*rik 16 python selenium phantomjs selenium-webdriver ghostdriver

根据这个,现在可以修改标题.我需要在PhantomJS webdriver中修改Accept-Language.此代码不起作用

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

有可能以某种方式配置Phantomjs发送我的标题?我不关心在哪里:内部ghostdriver,phantomjs或phantomjs-webdriver.

fal*_*tru 31

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

如果您使用的是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)
Run Code Online (Sandbox Code Playgroud)
...
{
  "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"
  }
 ...
Run Code Online (Sandbox Code Playgroud)

UPDATE

使用PhantomJS 1.9.2+.