gpt4 book ai didi

java - PhantomJS WebDriver headless : ".click" Method has no effect

转载 作者:太空宇宙 更新时间:2023-11-04 12:30:37 25 4
gpt4 key购买 nike

我希望有人可以帮助我解决我的 phantomJS 问题。我在unix 64位上运行版本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());
<小时/>

本地 Selenium 的输出(Windows):

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

但输出保持不变。

以防万一,下面是我实例化网络驱动程序的方法:

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

感谢任何帮助,感谢大家的努力!如果还有任何问题,请随时提问!提前致谢!

最佳答案

所以,为了以防万一有人偶然发现这个线程,经过几个小时的绝望之后,我终于设法弄清楚了。问题是 webdriver 的实例化缺少 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);

关于java - PhantomJS WebDriver headless : ".click" Method has no effect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37880752/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com