Java:通过Process控制浏览器

时间:2011-08-03 10:51:51

标签: java google-chrome process subprocess

我通过Android手机在PC上远程控制Java应用程序,我需要我的应用程序在手机命令中打开浏览器,在这种情况下为chrome。我为chrome创建了一个“Process”,打开了一个特定的地址。但是,我需要能够在Android手机上提供用于控制网页的工具,例如滚动。我可以以编程方式发送chrome命令以从包含Process的PC应用程序滚动吗?

很抱歉,它可能一直不清楚,但Android手机与程序的唯一连接是通过套接字。它仅用作PC上另一个Java应用程序的远程控制,它有自己的屏幕。

4 个答案:

答案 0 :(得分:2)

如果您可以定位要控制的选项卡并编辑地址栏,则可以发送命令'javascript:scrollTo(x,y)'。我刚刚在这个页面上进行了测试,它似乎工作正常,取代了我用页面原始地址输入的内容。

答案 1 :(得分:2)

我认为不存在干净的解决方案。

但我可以建议以下方向:

(1)尝试调查原生chrome API。如果有这样的能力,请与JNI联系。

(2)尝试使用班级java.awt.Robot。它允许模拟用户的活动,例如鼠标点击。不幸的是,它不允许您在应用程序之外找到任何窗口,因此确定执行单击​​的位置是一个问题。

(3)您可以创建代理服务器并使您打开的浏览器通过代理转到目标URL。代理服务器将在页面中插入与服务器通信的javascript。打开浏览器的应用程序将向服务器发送命令。您插入的javascript将使用AJAX接收这些命令并执行它们。 JavaScript可以滚动浏览器窗口,因此理论上你可以实现这一点。

答案 2 :(得分:1)

  

我是否可以通过编程方式发送chrome命令以从我的PC滚动   包含Process的应用程序?

不直接。您可以做的是在Android客户端和Android客户端可以发送命令的页面之间建立某种Web服务,页面可以通过AJAX调用定期轮询以查看客户端想要的内容。这将是一种干净的DIY方式,可以在除Chrome之外的其他浏览器上使用。

答案 3 :(得分:0)

您可以使用vnc viewer应用程序。

http://code.google.com/p/android-vnc-viewer/