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

如何从java打开IE,并通过java执行click()等操作?,java,internet-explorer,Java,Internet Explorer,我不想通过Java登录网站并通过Java执行操作,如单击、向文本字段添加文本等。我建议使用类似的测试框架。即使它是为测试而设计的,它还是远程网站的一个非常好的编程“导航器” 以下是该网站的一些示例代码,展示了如何导航到页面并填写表单: public void submittingForm() throws Exception { WebClient webClient = new WebClient(); HtmlPage page1 = webClient.getPage("htt

我不想通过Java登录网站并通过Java执行操作,如单击、向文本字段添加文本等。

我建议使用类似的测试框架。即使它是为测试而设计的,它还是远程网站的一个非常好的编程“导航器”

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

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();
}
你可以在6点前发射它

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

然后使用Java类发送鼠标单击并填写文本。不过,这似乎相当粗糙,通过直接与web服务器通信(完全绕过浏览器),您可能会做得更好。

如果您真的需要“真正的”IE,您可以尝试,如果您只需要java中的浏览器功能,我推荐您

更新:如OP所示,不需要/不需要使用真正的浏览器。使用HttpClient的表单登录示例可在此处找到:
答案可能会有所帮助


<>但是你应该考虑直接HTTP作为一种更好的与网站交互的方式。

你也可以使用来自CANOO的WebTestEngt,它实际上使用HTMLUnt,但上面有一个额外的层。应该更容易启动到脚本层,它附带了额外的抽象,用于发送邮件、验证输出等


不妨试试硒。它是免费的,并且有一个相当不错的IE包装。

我不想要真正的IE。我只想登录到一个页面,然后在登录后获得该页面的页面源代码。您能否帮助提供执行此登录的代码。我想通过JavaUpdate登录orkut.com更新我的答案。(而且,如果你不想,也不要在问题的标题中提及;-)谢谢你的代码。有一个错误noClassDefinitionFoundError:org/apache/commons/httpclient/auth/CredentialsProvider,我可以从哪里下载该库。你能给我提供链接吗?非常感谢。我已经安排好了所有的事情。但有一个运行时异常。我们可以聊10分钟吗?我需要您的帮助来删除cookies相关的异常。@Yatendra Goel:发布另一个问题来解决您的问题,并同意“运行时异常”,尽管可能有客户要求这样做。我在一家保险公司从事自动化测试工作,一直试图说服他们HTMLUnit将是一个有价值的补充,但他们坚持只使用物理交互模型,以更好地模拟用户体验。