PhantomJS WebDriver无头:“。click”方法无效

时间:2016-06-17 11:44:33

标签: java selenium-webdriver click phantomjs selenium-grid

我希望有人可以帮我解决我的 phantomJS 问题。 我在unix 64bit上运行1.9.8版作为一个节点,注册到运行在jenkins上的selenium hub。如果我导航到带有链接的HTML页面(没有IDname,这就是我通过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

远程selenium网格(unix)上的输出:

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

没有错误或类似,似乎驱动程序确实留在旧页面上。我在实例化WebDriver时尝试了不同的phantomjs.cli.args,添加了几个thread.sleep()并将click()替换为

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

但输出保持不变。

以防万一重要,以下是我实例化webdriver的方法:

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

我感谢任何帮助,谢谢你的努力!如果还有任何问题,请随时提出!提前谢谢!

1 个答案:

答案 0 :(得分:0)

所以,如果有人偶然发现这个帖子,我终于在数小时和绝望之后弄明白了。问题是缺少ssl相关属性的webdriver的实例化。这就是我现在的工作方式:

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);