如何以编程方式控制IE托管的Java applet?

时间:2013-05-31 10:57:39

标签: java c internet-explorer applet java-native-interface

我需要以编程方式导航java-applet,而我并不热衷于Java平台。因此,假设我已经使用适当的Java applet加载了IE进程。接下来我需要对这个特定的applet采取一些操作,比如说,发送WM_COMMAND和BN_CLICKED代码一起发送对话,就像我在C中使用Windows一样。假设它不是常规窗口,我可以参考使用HWND,我想向某人询问有关如何执行此操作的建议。

2 个答案:

答案 0 :(得分:2)

据我所知,您希望在客户端导航(发送击键和鼠标单击)一个java-applet。这取决于你是否拥有applet(比如:你有代码并且可以更改它),或者applet是否是封闭的源代码而你只想远程使用它。

在第一种情况下使用javascript来自动化它。更改包含HTML页面以包含一些Javascript并将参数传递到applet,如Java Tutorials中所述。

如果小程序接受参数,但您无法更改HTML页面,请使用GreaseMonkey alternative for IE

您的其他方法(从外部应用程序向IE发送Windows消息)也应该有效。启动Spy ++(如果您使用64位Windows,请使用64位版本),选择“搜索 - 查找窗口...”并将“Finder工具”图标拖到小程序上并将其释放。然后您将看到HWND,如果按搜索,您将在IE窗口层次结构中看到窗口。所以,是的,你可以向浏览器发送击键和鼠标点击。

如果我要自动化浏览器,我会使用Geb。您在Groovy中编写“网站测试”,只需查看Geb索引页面。

答案 1 :(得分:1)

您可以尝试使用FireFox +“Selenium IDE”在applet中录制导航,然后将其导出并尝试使用Selenium IE WebDriver在Java应用程序中运行。

有关Selenium的信息,请访问:http://docs.seleniumhq.org/

也许这个问题也会对您有所帮助:How to automate Java applet?