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+.
print(driver.execute_script("return navigator.language"))
. Does it work for you? // @dimazubrik – Refuse