I am trying to use PhantomJS with Selenium Webdriver and got success but for a specific website I see that it does not navigate to the URL. I have tried it with both Python and C#.
dcap = dict(webdriver.DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] = ("Mozilla/5.0 (Windows NT 6.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36") service_args = ['--load-images=false', '--proxy-type=None'] driver = webdriver.PhantomJS(executable_path="C:\phantomjs.exe", service_args=service_args, desired_capabilities=dcap) driver.get("https://satoshimines.com") print driver.current_url
The output of this code snippet is: about:blank
Whereas it works fine for any other website.
Same code with C#:
IWebDriver driver = new PhantomJSDriver(); driver.Navigate().GoToUrl("https://satoshimines.com"); Console.WriteLine(driver.Url);
The output of the C# program is also same.
I am stuck here and need help.
Following is a complete code solution for c# –
PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService(); service.IgnoreSslErrors = true; service.LoadImages = false; service.ProxyType = "none"; driver = new PhantomJSDriver(service);
For me, the solution was as follows:
var service = PhantomJSDriverService.CreateDefaultService(); service.SslProtocol = "tlsv1"; //"any" also works driver = new PhantomJSDriver(service);
I have no idea why the default sslv3 will not work. If you are sure the SSL certificates are valid, it is quite recommended not to ignore errors to protect against malicious certificates.
Update: For a very good explanation why SslProtocol should now be set to tlsv1 instead of the default sslv3, please take a look at the excellent cross link provided below by @Artjom B.
It seems I have found a solution to this. The problem was an SSL handshake problem.
‘–ignore-ssl-errors=true’ as a service_args to phantomjs solves the issue.
this worked for me:
Ran into this issue on an application quite abruptly after running phantomjs 1.9.7 for months without incident. The solution? Update phantomjs to 2.0.0.