我想打开一个网页并从一个 java 应用程序中运行一个 javascript 代码。例如,我想打开页面www.mytestpage.com并运行以下 javascript 代码:
document.getElementById("txtEmail").value="test@hotmail.com";
submit();
void(0);
这适用于浏览器...我如何在 Java 应用程序中以编程方式进行操作?
谢谢!
我想打开一个网页并从一个 java 应用程序中运行一个 javascript 代码。例如,我想打开页面www.mytestpage.com并运行以下 javascript 代码:
document.getElementById("txtEmail").value="test@hotmail.com";
submit();
void(0);
这适用于浏览器...我如何在 Java 应用程序中以编程方式进行操作?
谢谢!
有一个用 Java 编写的Rhino JS 引擎,您可以在 Tomcat 等应用程序服务器上运行并将 JS 提供给,但是 - 目前尚不清楚您要对此做什么?
还有基于 Rhino的Envjs 模拟浏览器环境,但足以运行 jQuery 和/或 Prototype
您可以使用Rhino来执行 JavaScript,但您不会有可用的 DOM - 即 document.getElementById()
可以工作。
您可以使用HTML 单元(无头)或WebDriver/Selenium(驱动浏览器)在具有可用 DOM 的环境中执行 JavaScript。
我不确定您在寻找什么,但我假设您想编写自动 POST 请求。这可以通过Http Client library来完成。只有您必须设置适当的请求(POST 或 GET)参数。
查看示例- 使用此库,您也可以进行基本身份验证或发布文件。
您的问题有点模棱两可,因为我们不知道 Java 程序的位置。
如果那是您页面中的 Java 小程序,您应该查看 Java<->JavaScript 交互,它运行良好。
如果您需要一个单独的 Java 程序来控制浏览器,例如在地址栏中发送一个小书签(正如您的一个标签所暗示的那样),它会有点困难(取决于目标浏览器),也许看看 Robot 类。
DWR(和其他框架)现在支持“反向 ajax”。一般的想法是您使用以下三种方法之一与客户端进行通信:
无论使用哪种方法(通常是配置时间决定,而不是编码问题),您都可以完全访问您想要进行的任何/所有 js 调用。
查看DWR 的参考页面以获得很好的解释。