0

我想打开一个网页并从一个 java 应用程序中运行一个 javascript 代码。例如,我想打开页面www.mytestpage.com并运行以下 javascript 代码:

document.getElementById("txtEmail").value="test@hotmail.com";
submit();
void(0);

这适用于浏览器...我如何在 Java 应用程序中以编程方式进行操作?

谢谢!

4

5 回答 5

0

有一个用 Java 编写的Rhino JS 引擎,您可以在 Tomcat 等应用程序服务器上运行并将 JS 提供给,但是 - 目前尚不清楚您要对此做什么?

还有基于 Rhino的Envjs 模拟浏览器环境,但足以运行 jQuery 和/或 Prototype

于 2009-10-24T07:20:04.727 回答
0

您可以使用Rhino来执行 JavaScript,但您不会有可用的 DOM - 即 document.getElementById()可以工作。

您可以使用HTML 单元(无头)或WebDriver/Selenium(驱动浏览器)在具有可用 DOM 的环境中执行 JavaScript。

于 2009-10-24T07:37:16.767 回答
0

我不确定您在寻找什么,但我假设您想编写自动 POST 请求。这可以通过Http Client library来完成。只有您必须设置适当的请求(POST 或 GET)参数。

查看示例- 使用此库,您也可以进行基本身份验证或发布文件。

于 2009-10-24T07:45:17.250 回答
0

您的问题有点模棱两可,因为我们不知道 Java 程序的位置。
如果那是您页面中的 Java 小程序,您应该查看 Java<->JavaScript 交互,它运行良好。
如果您需要一个单独的 Java 程序来控制浏览器,例如在地址栏中发送一个小书签(正如您的一个标签所暗示的那样),它会有点困难(取决于目标浏览器),也许看看 Robot 类。

于 2009-10-24T09:16:12.933 回答
0

DWR(和其他框架)现在支持“反向 ajax”。一般的想法是您使用以下三种方法之一与客户端进行通信:

  1. Comet(长期存在的 https 会话)
  2. 轮询
  3. 机会主义/捎带(即下次请求来自客户端时,附加您的 js 调用)

无论使用哪种方法(通常是配置时间决定,而不是编码问题),您都可以完全访问您想要进行的任何/所有 js 调用。

查看DWR 的参考页面以获得很好的解释。

于 2009-11-04T03:56:25.327 回答