我想启动Chrome网络浏览器作为访问特定网站的过程,然后等待它关闭。
一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。
在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不应该使我的等待过程感到困惑:要么,我想要一个新的浏览器窗口(如果可以通过命令行参数强制执行),然后等待直到将其关闭,或者保留现有的浏览器窗口,并等待所有选项卡出现从我的过程被关闭。
我认为这无关紧要,但是我的编程环境很重要Java
,您可以假设我知道浏览器的路径。
我可以获得其预期行为的唯一浏览器是Internet
Explorer
(叹气)。在这里,我基本上需要在temp文件夹中创建一个类似以下内容的新批处理脚本
start /WAIT "" "C:\Program Files\Internet Explorer\iexplore.exe" -noframemerging http://www.test.com/
然后,我运行批处理脚本,而不是直接运行浏览器,并在等待完成后将其删除。
为了使预期过程更加清晰:
noframemerging
IE。用例是我有一个可以在本地或服务器上运行的Web应用程序。如果在本地运行,它将启动Web服务器,然后打开浏览器以访问条目页面。关闭浏览器后,该Web应用程序也应关闭。这对于Internet
Explorer来说是可靠的,在所有其他情况下,用户必须关闭浏览器,然后关闭Web应用程序。因此,如果我可以可靠地等待Chrome完成,这将使用户体验更好。
按以下顺序优先选择解决方案
优先于平台无关的答案(与Windows和Linux兼容)。
原因:在理想情况下,我想知道到底做了什么,并将其包含在我自己的代码中。因为我想支持不同的浏览器(请参见下面的“
PS”),所以我希望避免每个浏览器都包含一个库。最后,我不能使用商业或封闭源代码库,但是如果没有更好的答案,我当然会接受任何可行的解决方案。我将接受类型“
1”的第一个(相当不错的)有效答案。如果答案偏低,我将等几天再接受其中的最佳答案。
我在“ 启动Firefox和等待直到关闭”中对您的问题的回答也适用于此。但是,您需要在下面添加导入
import org.openqa.selenium.chrome.ChromeDriver;
并从中更改以下代码
driver = new FirefoxDriver();
至
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
driver = new ChromeDriver();
您还需要下载一个单独的chrome驱动程序文件(chromedriver.exe)。硒网站上提供了链接。您需要将文件复制到适当的文件夹中。
问题内容: 题 我想启动Safari Web浏览器作为访问特定网站的过程,然后等待直到它关闭。 一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。 在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不应该让我的等待过程感到困惑:我要么想要一个新的浏览器窗口(如果可以通过命令行参数强制执行),然后等待直到关闭该窗口,要么保留现有的浏览器窗
问题内容: 题 我想启动Firefox Web浏览器作为访问特定网站的过程,然后等待它关闭。 一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。 在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不应该使我的等待过程感到困惑:要么,我想要一个新的浏览器窗口(如果可以通过命令行参数强制执行),然后等待直到将其关闭,或者保留现有的浏览器窗口
问题内容: 题 我想启动Firefox Web浏览器作为访问特定网站的过程,然后等待它关闭。 一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。 在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不应该使我的等待过程感到困惑:要么,我想要一个新的浏览器窗口(如果可以通过命令行参数强制执行),然后等待直到将其关闭,或者保留现有的浏览器窗口
问题内容: 题 我想启动Firefox Web浏览器作为访问特定网站的过程,然后等待它关闭。 一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。 在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不会使我的等待过程感到困惑:要么,我想要一个新的浏览器窗口(如果可以通过命令行参数强制执行该操作),然后等待直到将其关闭,或者保留现有的浏览器
问题内容: 题 我想启动Firefox Web浏览器作为访问特定网站的过程,然后等待它关闭。 一种特殊情况是浏览器可能已经打开并正在运行,因为用户可能已经访问过某些网站。 在这种情况下,浏览器可能会在现有窗口中打开一个新选项卡,并且新启动的过程将立即终止。这不会使我的等待过程感到困惑:要么,我想要一个新的浏览器窗口(如果可以通过命令行参数强制执行该操作),然后等待直到将其关闭,或者保留现有的浏览器
问题内容: 我不明白为什么在Windows上很难做到这一点。 我想产生一堆将运行其他脚本的命令提示符窗口。我想要这样做的原因是这样,我可以整齐地看到每个脚本的所有输出(如果我只是在主窗口中将它们作为线程/子进程,则无法正确查看所有输出)。我也不想记录输出,因为它主要用于查看进度条,而实际上不适用于日志文件。 因此,我需求的各个部分都可以工作,但不能一起工作: 但是,操作系统不会让我等到命令完成(因