Seleniumdriver.quit()当它卡在“与服务器的连接已重置”或只是“停止响应”时,有时无法在调用后关闭。发生这种情况时,无法WebDriver直接使用杀死进程(浏览器),我能想到的唯一方法是通过检索PID浏览器并销毁进程:
String cmd = "taskkill /F /PID " + pidOfBrowser;
Runtime.getRuntime().exec(cmd);
Run Code Online (Sandbox Code Playgroud)
我知道这个响应建议检索当前正在运行的进程列表并将其过滤到 Firefox 浏览器。但是,正如有人在其中一条评论中指出的那样,如果用户有许多并发会话正在运行并且只想杀死少数几个,这将不起作用。
该线程的评论部分建议的另一个解决方案是在开始之前从浏览器获取 PID 列表,并且只关闭那些在测试开始之前没有运行的(因此在测试开始之前手动启动的任何浏览器都不会关闭)
但是,这不适用于我的情况,因为我从我的程序(不是手动)一次启动了许多浏览器,并且只想关闭一些已启动的浏览器(那些挂起且不再响应的浏览器WebDriver)。
我如何获得PID特定Firefox WebDriver会话(最好是在创建时),以便稍后在进程挂起或“卡住”时终止该进程?
谢谢!
什么是硒?
当您打开Selenium的官方页面时,您首先读到的是“什么是Selenium?”中的“ Selenium automates browser”。部分。“硒的哪个部分适合我?”部分 下面提供了Selenium WebDriver和Selenium IDE之间的选择。据此,我推断出Selenium是工具的集合,该集合包括IDE,WebDriver API(语言绑定),Grid,Selenium Standalone Server,浏览器驱动程序。必须下载适当的文件才能构建项目。
什么是WebDriver?
WebDriver是一个API。它用多种语言编写,这些语言称为语言绑定。API具有控制浏览器的功能。您可以使用这些功能编写脚本来以所需的方式(测试用例)控制浏览器。
这就是我所知道的。如果我错了,请纠正我。我想从面试的角度知道这两个问题的答案。