Подтвердить что ты не робот

Selenium Webdriver + PhantomJS остается примерно: пустым для определенного сайта

Я пытаюсь использовать PhantomJS с Selenium Webdriver и добился успеха, но для определенного веб-сайта я вижу, что он не перемещается по URL-адресу. Я попробовал это как с Python, так и с С#. Код Python:

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

Результат этого фрагмента кода: about: blank
Принимая во внимание, что он отлично работает для любого другого веб-сайта.

Тот же код с С#:

IWebDriver driver = new PhantomJSDriver();
driver.Navigate().GoToUrl("https://satoshimines.com");
Console.WriteLine(driver.Url);

Вывод программы С# тоже.

Я застрял здесь и нуждаюсь в помощи.

4b9b3361

Ответ 1

Ниже приведено полное кодовое решение для С# -

PhantomJSDriverService service = PhantomJSDriverService.CreateDefaultService();
service.IgnoreSslErrors = true;
service.LoadImages = false;
service.ProxyType = "none";

driver = new PhantomJSDriver(service);

Ответ 2

Для меня решение было следующим:

var service = PhantomJSDriverService.CreateDefaultService();
service.SslProtocol = "tlsv1"; //"any" also works

driver = new PhantomJSDriver(service);

Я не знаю, почему по умолчанию sslv3 не будет работать. Если вы уверены, что сертификаты SSL действительны, настоятельно рекомендуется не игнорировать ошибки для защиты от вредоносных сертификатов.

Обновление. Для очень хорошего объяснения, почему SslProtocol теперь должен быть установлен на tlsv1 вместо стандартного sslv3, пожалуйста, взгляните на отличную перекрестную ссылку, представленный ниже @Artjom B.

Ответ 3

Кажется, я нашел решение этого. Проблема заключалась в проблеме установления связи с SSL. Путем прохождения '--ignore-ssl-errors = true', поскольку service_args для phantomjs решает проблему.

Спасибо

Ответ 4

это сработало для меня:

DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setJavascriptEnabled(true);
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[] {"--web-security=no", "--ignore-ssl-errors=yes", "--ssl-protocol=tlsv1"});
driver = new PhantomJSDriver(capabilities);

Ответ 5

В этом выпуске приложения довольно неожиданно после запуска phantomjs 1.9.7 в течение нескольких месяцев без инцидентов. Решение? Обновите phantomjs до 2.0.0.