获取由Selenium启动的浏览器的PID(在java中)

时间:2013-06-13 12:47:32

标签: selenium selenium-webdriver pid

是否可以获取由Selenium Webdriver启动的浏览器的PID。

这必须是Java,因为这就是我运行webdriver的方式。这可能吗?

2 个答案:

答案 0 :(得分:1)

不是特别的,你可以获得当前正在运行的进程列表并将其过滤掉。

Selenium没有用于启动浏览器的特殊属性或功能。因此,如果您正在运行手动启动的该浏览器的实例,您也可以获得该实例。也就是说,如果你有两个Firefox实例,一个是Selenium推出并正在进行测试的实例,以及你自己的一个Firefox会话,那么你将拥有两者在已过滤的列表中,完全没有办法将它们区分开来。

看看this SO question。使用此代码获取所有当前正在运行的进程。将其过滤到您想要获得的浏览器。

如果你通过这样做来解释你想要实现的目标,我们可能会给出更好的答案。

答案 1 :(得分:0)

开箱即用,selenium不会公开驱动程序进程ID或浏览器hwnd,但它是可能的。以下是获取hwnd的逻辑

初始化驱动程序时,获取集线器的URL并提取端口号 从端口号,找到正在使用此端口进行监听的进程ID,即。驱动程序的PID 导航后,从iexplore的所有实例中找到父PID匹配驱动程序的pid,即浏览器pid。 找到浏览器hwnd后获取浏览器pid的Hwnd,你可以使用win32 api将selenium带到前台。 它不可能在这里发布完整代码,将浏览器放在我面前的完整工作解决方案(C#)在我的博客上

http://www.pixytech.com/rajnish/2016/09/selenium-webdriver-get-browser-hwnd/