如何以编程方式单击Java中的网页按钮?
给定此按钮:
<div id="titlebutton" >Button</div>
在Javascript中它会像这样工作:
var newWin = window.open(siteYouHaveAccessTo);
newWin.document.getElementById('titlebutton').click();
我想知道如何在Java中执行此操作,而不是Javascript(有没有办法单独使用Java或者我必须导入/使用Javascript?)。
编辑:
单击Button将调用一个名为setText()的函数。 我不确定如何发送类似的请求作为此功能? 如果我粘贴功能代码会有帮助吗?
答案 0 :(得分:5)
您无法以编程方式&#39;单击一个仅包含Java的按钮,这就是我们使用JavaScript的原因。如果您想控制浏览器,例如单击按钮和填写文本字段,则必须使用自动化工具。使用Java的自动化工具是Selenium。这通常用于测试自动化,但会按照您的意愿执行。
答案 1 :(得分:0)
我不确定这是否是您正在寻找的,但如果您要做的只是在Java中发出HTTP请求,这应该可以解决问题:
HttpURLConnection urlConnection = null;
URL urlToRequest = new URL("http://yoursite.com/yourpage?key=val&key1=val1");
urlConnection = (HttpURLConnection) urlToRequest.openConnection();
urlConnection.setConnectTimeout(CONN_TIMEOUT);
urlConnection.setReadTimeout(READ_TIMEOUT);
// handle issues
int statusCode = urlConnection.getResponseCode();
if (statusCode == HttpURLConnection.HTTP_UNAUTHORIZED) {
// handle unauthorized (if service requires user login)
} else if (statusCode != HttpURLConnection.HTTP_OK) {
// handle any other errors, like 404, 500,..
}
InputStream in = new BufferedInputStream(urlConnection.getInputStream());
// Process response
使用您自己的值替换超时常量,并使用与您的网站匹配的URL。您可以通过单击按钮将要发送的任何数据作为键/值对形式的URL中的查询参数发送。
答案 2 :(得分:0)
如果您正在寻找浏览器自动化,可以使用selenium或java.awt.Robot
机器人可以向操作系统发送'点击'。已经将它与vbs脚本一起使用,首先确保特定窗口具有焦点然后发送文本和点击,最后保存结果...不是很好,就好像页面改变了一些东西然后你需要进行调整。但是我这个人用它4年了。