以编程方式单击网页按钮

时间:2013-05-16 13:56:23

标签: java html

如何以编程方式单击Java中的网页按钮?

给定此按钮:

 <div id="titlebutton" >Button</div>

在Javascript中它会像这样工作:

var newWin = window.open(siteYouHaveAccessTo);
newWin.document.getElementById('titlebutton').click();

我想知道如何在Java中执行此操作,而不是Javascript(有没有办法单独使用Java或者我必须导入/使用Javascript?)。

编辑:

单击Button将调用一个名为setText()的函数。 我不确定如何发送类似的请求作为此功能? 如果我粘贴功能代码会有帮助吗?

3 个答案:

答案 0 :(得分:5)

您无法以编程方式&#39;单击一个仅包含Java的按钮,这就是我们使用JavaScript的原因。如果您想控制浏览器,例如单击按钮和填写文本字段,则必须使用自动化工具。使用Java的自动化工具是Selenium。这通常用于测试自动化,但会按照您的意愿执行。

请参阅http://docs.seleniumhq.org/

答案 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年了。