PhantomJS WebDriver без головы: метод.click не имеет никакого эффекта

Я надеюсь, что кто-нибудь может помочь мне с моей проблемой фантома. Я использую версию 1.9.8 в Unix 64bit в качестве узла, который регистрируется в концентраторе селена, работающем на jenkins. Если я перейти на страницу HTML со ссылкой (которая не имеет ID или же nameВот почему я обращаюсь к нему через xpath - К сожалению, я не могу изменить HTML-код, так как это внешний ввод), я пытаюсь щелкнуть по нему, чтобы перейти на следующую страницу. При использовании драйвера Firefox это работало без проблем, и если я запускаю локальный сервер selenium (windows, phantomJS v. 1.9.8), он работает также.

Мой код:

System.out.println("current url before click: " + getDriver().getCurrentUrl());
getDriver().findElement(By.xpath("//a")).click();
System.out.println("current url after click: " + getDriver().getCurrentUrl());

Выход на местный селен (окна):

current url before click: https://initialpage.html
current url after click: https://www.my-link.com

Вывод на удаленную селеновую сетку (unix):

current url before click: https://initialpage.html
current url after click: https://initialpage.html

Там нет ошибки или что-то подобное, просто кажется, что драйвер остается на старой странице. Я уже пробовал разные phantomjs.cli.args при создании экземпляра WebDriver, добавив несколько thread.sleep()и замена click() от

getDriver().navigate().to(getDriver().findElement(By.xpath("//a")).getAttribute("href")); 

но результат остается прежним.

На всякий случай, вот как я создаю экземпляр веб-драйвера:

 driver = new RemoteWebDriver(new URL("http://servername:4444/wd/hub"), DesiredCapabilities.phantomjs());

Я ценю любую помощь, спасибо за усилия, ребята! Если остались какие-либо вопросы, не стесняйтесь спрашивать! Заранее спасибо!

1 ответ

Решение

Так что на тот случай, если кто-нибудь наткнется на эту тему, мне наконец-то удалось разобраться после нескольких часов отчаяния. Проблема заключалась в создании экземпляра веб-драйвера, в котором отсутствовало свойство ssl. Вот как это работает для меня сейчас:

final ArrayList<String> cliArguments = new ArrayList<String>();
cliArguments.add("--ssl-protocol=any");
final DesiredCapabilities dCap = DesiredCapabilities.phantomjs();
dCap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArguments);
driver = new RemoteWebDriver(new URL("http://servername:4444/wd/hub"), dCap);
Другие вопросы по тегам