【问题标题】:Get PID of browser started by Selenium (in java)获取 Selenium 启动的浏览器的 PID(在 java 中)
【发布时间】:2013-06-13 12:47:32
【问题描述】:

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

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

【问题讨论】:

标签: selenium selenium-webdriver pid


【解决方案1】:

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

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

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

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

【讨论】:

  • 嗯,有时 IE 无法关闭,所以我必须杀死它。它卡在“您要关闭此页面吗”。无论如何,我已经通过列出我正在启动的浏览器中的所有 PID 来解决它,并在我的测试之后关闭那些在我的测试之前没有运行的 PID。
【解决方案2】:

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

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

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

【讨论】:

    猜你喜欢
    • 2012-05-31
    • 2020-10-04
    • 2013-09-12
    • 2020-04-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多