如何从java打开IE并通过java执行click()等操作?

时间:2009-09-09 12:30:43

标签: java internet-explorer

我不想通过Java登录网站并通过Java执行操作,例如点击,在文本字段中添加文本等。

6 个答案:

答案 0 :(得分:6)

我建议使用像HtmlUnit这样的测试框架。即使它是专为测试而设计的,它也是远程网站的一个非常好的程序化“导航器”。

以下是该网站的一些示例代码,展示了如何导航到某个页面并填写表单:

public void submittingForm() throws Exception {
   WebClient webClient = new WebClient();
   HtmlPage page1 = webClient.getPage("http://some_url");
   HtmlForm form = page1.getFormByName("myform");
   HtmlSubmitInput button = form.getInputByName("submitbutton");
   HtmlTextInput textField = form.getInputByName("userid");
   textField.setValueAttribute("root");
   HtmlPage page2 = button.click();
}

答案 1 :(得分:4)

您可以通过

启动它
Runtime.getRuntime().exec("command-line command to launch IE");

然后使用Java的Robot类发送鼠标点击并填写文本。这看起来相当粗糙,你可以通过直接与网络服务器通信(完全绕过浏览器)做得更好。

答案 2 :(得分:1)

This question's答案可能会有所帮助。

但您应该将直接HTTP视为与网站互动的更好方式。

答案 3 :(得分:0)

如果你真的需要一个“真正的”IE,你可以尝试Watij,如果你只需要java中的浏览器功能,我建议HttpClient

更新:因为不需要/想要使用真实浏览器指示的OP。可以在此处找到使用HttpClient进行表单登录的示例:http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/src/examples/org/apache/http/examples/client/ClientFormLogin.java

答案 4 :(得分:0)

你也可以使用Canoo的WebTest,它实际上使用HTMLUnit,但在它上面有一个额外的层。应该更容易开始编写脚本层,它带有额外的抽象发送邮件,验证输出等。

http://webtest.canoo.com/webtest/manual/WebTestHome.html

答案 5 :(得分:0)

不妨试试Selenium。它是免费的,有一个相当不错的IE封装。