Python: Selenium with PhantomJS empty page source
I'm having trouble with Selenium and PhantomJS on Windows7 when I want to get the source of the page of an URL.
browser.page_source
returns only <html><head></head></html>
. I've put a sleep before browser.page_source
but it didn't help.
This is my code:
from selenium import webdriver
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe')
url = 'myurl'
browser.get(url)
print browser.page_source
On Linux with the same version of PhantomJS it works perfectly. Also it works on Windows Server 2003.
Solution 1:
by default phantomjs use SSLv3, but many sites after bug in ssl migrate to tls. That's why you has blank page.
use service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])
Solution 2:
Using service_args=['--ignore-ssl-errors=true']
did the trick !
browser = webdriver.PhantomJS('phantomjs-1.9.7-windows\phantomjs.exe', service_args=['--ignore-ssl-errors=true'])
Solution 3:
driverPhantom = webdriver.PhantomJS(driverLocation, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any']) # initaling web driver for PhantomJs
Worked for me.