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
DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.Accept-Language'] = 'ru-RU'
driver = webdriver.PhantomJS()
Is it possible somehow to configure Phantomjs to send my header? i don't care where: inside ghostdriver, phantomjs or phantomjs-webdriver.
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.
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"
}
...
Use PhantomJS 1.9.2+.
I write a full example to set all headers , window size and proxy in selenium phantomjs:
from selenium import webdriver
def init_phantomjs_driver(*args, **kwargs):
headers = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language':'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0',
'Connection': 'keep-alive'
}
for key, value in headers.iteritems():
webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.customHeaders.{}'.format(key)] = value
webdriver.DesiredCapabilities.PHANTOMJS['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.116 Safari/537.36'
driver = webdriver.PhantomJS(*args, **kwargs)
driver.set_window_size(1400,1000)
return driver
def main():
service_args = [
'--proxy=127.0.0.1:9999',
'--proxy-type=http',
'--ignore-ssl-errors=true'
]
driver = init_phantomjs_driver(service_args=service_args)
driver.get('http://cn.bing.com')
userAgent
is set in phantomjs.page.settings.userAgent
instead of phantomjs.page.customHeaders
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With