Selenium webdriver.Remote получает ошибки SSL в Linux, работает на macOS - PullRequest
0 голосов
/ 27 мая 2018

Я пытаюсь почистить сторонний сайт с помощью Selenium (я пытался использовать Beautiful Soup, но их система аутентификации слишком сложна для понимания, поэтому я взамен выбрал и использовал Selenium).

Я используюскрипт python, использующий последние версии драйверов Selenium 3.12.0 и selenium-server-standalone-3.12.0.jar.И мои Linux, и macOS работают под управлением jdk 1.8.0_172.

Если я запускаю скрипт на Linux или macOS с сервером selenium на macOS, он прекрасно работает.Если я запускаю скрипт на Linux или macOS с сервером selenium под Linux, он не может загрузить jQuery со следующей ошибкой:

18:28:02.453 ERROR [DefaultJavaScriptErrorListener.loadScriptError] - Error loading JavaScript from [https://ww6.fltplan.com/js/jquery-1.12.3.min.js].
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
   at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1002)
   at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1385)

Сайт, который я копирую, написан очень примитивно (выглядит как-тоиз GeoCities) так что очень вероятно, что он делает что-то абсурдное.О, и этот код работал несколько недель назад, и я «заморозил» его, но затем он перестал работать в Linux, и мне пришлось снова начать с ним возиться.

Вот мой код подключения:

capabilities = {
        'browserName': 'htmlunit',
        'version': 'firefox',
        'platform': 'ANY',
        'javascriptEnabled': True,
        'acceptInsecureCerts': True,
}
driver = webdriver.Remote(
    # "http://192.168.1.46:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNITWITHJS
    # "http://localhost:4444/wd/hub", webdriver.DesiredCapabilities.HTMLUNITWITHJS
    "http://localhost:4444/wd/hub", capabilities
)

driver.get("https://www.fltplan.com/")

Первый закомментированный Remote URL - это Selenium, работающий на моем компьютере с macOS, он работает.Второй и третий - попытки заставить его работать на Linux, но пока безуспешные.Второй - тот, который работал до нескольких недель назад.

1 Ответ

0 голосов
/ 27 мая 2018

Я думаю, у меня есть решение.Я делаю копию файла java.security в java_home/jre/lib/security и закомментировал все строки «disabledAlgorithms» в файле.Я запускаю сервер селена с nohup java -Djava.security.properties==java.security.copy -jar selenium-server-standalone-3.12.0.jar, и он, кажется, теперь работает.

Мне было бы интересно услышать объяснение, почему это работает.Я предполагаю, что это означает, что сайт, с которого они пытаются загрузить jquery, использует шифрование, которое jdk 1.8 отключает, потому что он считается слишком слабым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...