如何使用Selenium网络驱动程序获取浏览器会话ID


How to get browser sessionId using Selenium webdriver

我正在使用selenium webdriver(php-webdriver-bindings Yii扩展),我正在尝试获取浏览器sessionId(测试将使用的那个)。 我以为我可以通过网络驱动程序获得这个,但事实似乎并非如此。 Webdriver 有一个 sessionId,但这不是测试浏览器正在使用的那个。

正在尝试在测试运行之前登录,以允许我的测试成为经过身份验证的用户,这将允许他们访问我正在测试的页面。

我已经研究和测试了几天了,我不知所措。 任何帮助将不胜感激。

谢谢。

你可以强制转换为具体类型,例如 RemoteWebDriver,它们都继承自该类型,并且还实现了 getSessionId:

((RemoteWebDriver) driver).getSessionId()

我在 Java 中遇到了这个问题,但在仔细检查源代码时,注意到我使用的驱动程序被实例化为WebDriver对象。将其更改为RemoteWebDriver对象后,.getSessionId()方法公开,driver.getSessionId()按预期返回会话 ID。

我不确定这将如何转换为 PHP,但我建议返回并检查以确保您的驱动程序是RemoteWebDriver对象,而不是WebDriver对象。