Custom headers in Phantomjs Selenium WebDriver

前端 未结 2 891
小蘑菇
小蘑菇 2020-12-12 22:52

According to this it is possible now to modify headers. Atm i need to modify Accept-Language in PhantomJS webdriver. This code doesn\'t work

DesiredCapabilit         


        
2条回答
  •  死守一世寂寞
    2020-12-12 23:32

    The latest version (1.9.1) of PhantomJS is release Jun/5/2013. The pull request is merged Jun/23/2013.

    If you are using 1.9.1 version of PhantomJS, custom headers will not work.

    You have to build phantomjs yourself or wait until phantomjs merge ghostdriver changes and release new version.

    • Clone PhantomJS repository
    • Clone ghostdriver repository
    • copy ghostdriver/src/* to phantomjs/src/ghostdriver recursively
    • build phantomjs

    Using newly build phantomjs I got following result:

    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"
      }
     ...
    

    UPDATE

    Use PhantomJS 1.9.2+.

提交回复
热议问题