java 打开chrome_java – 启动Chrome并等到它关闭

参见英文答案 > Launch Firefox and Wait until it is Closed????????????????????????????????????1个

我想启动Chrome网络浏览器作为访问特定网站的过程,然后等待它关闭.

特殊情况是浏览器可能已经打开并运行,因为用户可能已经访问过某个网站.

在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,新启动的进程将立即终止.这不应该混淆我的等待过程:要么,我想要一个新的浏览器窗口(如果可以某种方式强制执行,可能通过命令行参数)并等待关闭,或保持现有的浏览器窗口并等待所有选项卡结果从我的过程关闭.

环境

我认为没关系,但我的编程环境是Java,你可以假设我知道浏览器的路径.

我可以获得预期行为的唯一浏览器是Internet Explorer(叹息).在这里,我需要基本上在一个临时文件夹中创建一个新的批处理脚本

start /WAIT "" "C:\Program Files\Internet Explorer\iexplore.exe" -noframemerging http://www.test.com/

然后我运行批处理脚本而不是直接浏览器,并在等待完成后删除它.

预期的过程

使目标过程更清晰:

>我的程序开始了.

>我的程序将Chrome浏览器作为单独的进程启动,并提供一个URL作为该进程的参数进行访问.

> Chrome浏览器作为新进程异步运行,并访问提供的URL.到目前为止,这很容易.

>启动新进程(Chrome浏览器)后,我自己的程序应该等待所述进程终止.这是困难的部分,因为

>许多现代浏览器启动多个进程.我需要等待所有这些.

>许多现代浏览器可能以某种方式“脱离”我自己启动的过程.对不起,我不知道一个更好的词,我的意思是:我启动一个进程然后启动另一个进程并立即终止,而另一个进程继续运行.如果我等待我的程序最初启动的浏览器进程,则等待将在浏览器仍处于打开状态时完成.

>上面的一个特例是在许多浏览器中实现的选项卡式浏览:如果浏览器在我启动时已经打开(在用户启动的单独进程中),我新启动的浏览器进程可以简单地传达URL以访问现有流程并终止.当我的程序认为她已关闭浏览器时,用户仍在我提供的URL上.通过指定特殊的命令行参数(例如IE的noframemerging)可能会禁止此问题.

>一旦浏览器终止或与我提供的URL相关的所有标签都已关闭,我的程序将停止等待,而是继续开展业务.

用例是我有一个可以在本地运行或在服务器上运行的Web应用程序.如果它在本地运行,它将启动Web服务器,然后打开浏览器以访问条目页面.关闭浏览器后,该Web应用程序也应该关闭.这对于Internet Explorer来说是可靠的,对于所有其他情况,用户必须关闭浏览器,然后明确地关闭Web应用程序.因此,如果我能够可靠地等待Chrome完成,这将使用户体验更好.

方案偏好:

解决方案按以下顺序排列

>随Java Java JRE一起提供的任何东西.这包括浏览器的特殊命令行参数.

>需要我的事情,例如,创建一个批处理脚本(例如在IE的情况下).

>任何需要第三方开源库的东西.

>任何需要3rth党闭源图书馆的东西.

任何独立于平台的答案(同时适用于Windows和Linux)都优先于平台相关的答案.

理由:在理想情况下,我想知道究竟是做了什么,并将其包含在我自己的代码中.由于我想支持不同的浏览器(请参阅下面的“PS”),我希望避免每个浏览器包含一个库.最后,我不能使用商业或闭源图书馆,但如果没有更好的答案出现,当然,我会尊重任何有效的解决方案.我将接受类型为“1”的第一个(相当不错的)工作答案.如果低级偏好的答案出现,我会等几天才接受其中最好的答案.

PS

我将为其他浏览器发布几个类似的问题.由于我认为浏览器在它们消化的命令行参数方面完全不同,启动线程和子进程的方式,我认为这是有道理的.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值