0

我正在使用Process p=Runtime.getRuntime().exec打开网页。我将使用什么事件处理程序来单击使用 Java 的打开网页上的按钮?

4

2 回答 2

2

没有,真的。您对您启动的流程没有任何细粒度的控制;你得到的只是流程中的输入、输出和错误流。

如果您想通过 Java 与网页进行交互(但不在屏幕上显示它们),您可以查看HtmlUnit

您可以配置 HtmlUnit 来模拟特定的浏览器(用户代理标头、cookie 策略等)。

如果一切都失败了,您可以编写一个小的 JavaScript 控制器并在浏览器中打开它,而不是直接在目标网页中打开。然后,该 JavaScript 控制器可以与您的应用程序对话,获取指令(例如要导航到的页面),并根据这些指令采取行动。Selenium是一个很好的选择,但可能需要您安装浏览器插件。

于 2013-03-06T05:03:23.240 回答
0

添加来自 radai 的答案和评论

一个。“已经有程序可以执行此操作,但由于缺少浏览器,由于 bluecoat 安全性,它无法在我的工作域中使用” - 这不是因为缺少浏览器。这是因为您的 java 进程没有访问页面的代理凭据。来自该工具的 http 调用是通过您的代理进行的。您可以尝试使用所需属性设置环境。

如果您从命令行运行该工具 - 您可以尝试这样的事情

JAVA_FLAGS=-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
java ${JAVA_FLAGS} <java_class_to_run>

湾。如果您打算重新创建该工具 - jsoup是另一个不错的选择

于 2013-03-06T05:33:27.953 回答