The latest version (2.1) of PhantomJS was released January 23, 2016, hence, the pull request is merged January 23, 2016.
If you are using the 2.1 version of PhantomJS, custom headers will not work.
You have to build phantomjs yourself or wait until phantomjs merge ghost driver changes and release a new version.
Clone PhantomJS repository
Clone ghostdriver repository
copy ghostdriver/src/* to phantomjs/src/ghostdriver recursively
build phantomjs
Using newly build phantomjs I got the 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" } ...