2

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

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

4

2 回答 2

2

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

Selenium 没有用于启动浏览器的特殊属性或功能。因此,如果您正在运行手动启动的浏览器实例,您也会得到它。也就是说,如果您有两个 Firefox 实例,一个是 Selenium 启动并正在对其进行测试,另一个是您自己的 Firefox 会话,那么您将在过滤列表中同时拥有这两个实例,根本没有办法把它们区分开来。

看看这个 SO question。使用此代码获取所有当前正在运行的进程。将其过滤到您尝试获取的浏览器。

如果您解释这样做是为了达到什么目的,我们可能会给出更好的答案。

于 2013-06-13T13:53:23.940 回答
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/

于 2016-09-09T09:50:49.713 回答