Java-HtmlUnit-无法使用javascript点击锚点
Java - HtmlUnit - Cannot click on anchor with javascript
本文关键字:javascript Java-HtmlUnit- 更新时间:2023-10-12
我正试图使用HtmlUnit在内部HP项目和投资组合管理中运行搜索。但我遇到了一个问题,我无法点击"搜索",它看起来像:
<span id="SEARCH_BUTTON_LINK" class="primBtn" name="SEARCH_BUTTON_LINK">
<a href="javascript:search()"></a>
</span>
这是我的代码:
final WebClient webClient = new WebClient();
webClient.getOptions().setJavaScriptEnabled(true);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.setAjaxController(new NicelyResynchronizingAjaxController());
final String savedSearchURI = "my_url";
HtmlPage page = webClient.getPage(savedSearchURI);
HtmlAnchor a = page.getAnchorByHref("javascript:search()");
page=a.click();
但尽管如此,我仍然站在同一立场上。如果我在浏览器中做同样的事情,我会移动到带有搜索结果的页面。下面是我已经尝试过的:
BrowserVersion
synchronized (page) {page.wait(2000);}
waitForBackgroundJavaScript(1000);
waitForBackgroundJavaScriptBeforeStart(1000);
我完全迷失了方向,无法理解发生了什么。我试着用javascript点击其他一些锚点,其中一些效果很好(比如登录),有些结果也一样。
有些时候JS需要时间来执行,所以你必须等待执行,最好是重试一段时间,直到页面没有更新(使用任何条件)这里是代码的例子
HtmlForm form = page.getForms().get(0);
HtmlTextArea textArea = form.getTextAreaByName("scandata");
HtmlSubmitInput button = form.getInputByValue("Submit");
HtmlPage res = button.click();
int input_length = page.getByXPath("//input").size();
int tries = 5;
while (tries > 0 && input_length < 12) { //you can change number of tries and condition according to your need
tries--;
synchronized (page) {
page.wait(2000); //wait
}
input_length = page.getByXPath("//input").size(); //input length is example of condtion
}
相关文章:
- java.net和javascript之间正则表达式的差异
- 如何使用json将对象列表从java转换为javascript
- 在 Java 中的 JavaScript 函数中插入 Wicket 值
- JSON分析错误:Java中AJAX、Javascript和Servlet的意外EOF
- 如何将变量数据从Java类获取到JavaScript
- 将这些正则表达式从javascript转换为Java
- java,javascript签名的小程序(文件选择,ftp上传)安全性/套接字异常
- JavaScript/Java GWT with Rails
- php javascript java applet smart card signing pdf on server
- Javascript:Java类包和类冲突问题
- FF插件中的桥接JavaScript / Java
- Javascript/Java - Webservice returning doubles for date.valu
- 延迟Javascript/Java中函数内的代码执行
- 使用Rhino/JavaScript/Java显示DOS错误消息
- AES JavaScript & Java
- 如何在Android WebView中实现JavaScript-Java通信同步?
- 遍历2D数组(网格)的最佳寻路算法(JavaScript/Java/ c#)
- 获取网页源代码后,网页运行Javascript - Java
- Javascript/Java Servlet之间的响应/请求
- JavaScript, Java, Php或c++密码加密-修改算法