我正在使用Process p=Runtime.getRuntime().exec
打开网页。我将使用什么事件处理程序使用Java单击打开的网页上的按钮?
答案 0 :(得分:2)
没有,真的。您对启动的流程没有任何细粒度的控制权;所有你得到的是来自流程的输入,输出和错误流。
如果您想与来自Java的网页进行互动(但不在屏幕上显示),您可以查看HtmlUnit。
您可以配置HtmlUnit以模拟特定浏览器(用户代理标头,Cookie政策等)。
如果所有其他方法都失败了,您可以编写一个小型JavaScript控制器并在浏览器中直接打开它而不是目标网页。然后,JavaScript控制器可以与您的应用程序进行对话,获取指令(例如要导航到的页面),并对其进行操作。 Selenium是一个很好的候选者,但可能会要求你安装一个浏览器插件。
答案 1 :(得分:0)
添加radai的答案和评论
一个。 “已经有程序可以执行此操作,但由于缺少浏览器而无法在我的工作域中使用蓝图安全” - 这不是因为缺少浏览器。这是因为您的java进程没有用于访问页面的代理凭据。来自该工具的http调用将通过您的代理进行定向。您可以尝试使用所需的属性设置环境。
如果从命令行运行该工具 - 您可以尝试这样的事情
JAVA_FLAGS=-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
java ${JAVA_FLAGS} <java_class_to_run>
湾如果您打算重新创建该工具,jsoup是另一个很好的选择