我正在使用selenium webdriver(php-webdriver-bindings Yii扩展名),我正在尝试获取浏览器的sessionId(测试将使用的那个)。我以为我可以通过webdriver获取这个,但似乎不是这样。Webdriver有一个sessionId,但这不是测试浏览器正在使用的那个。我试图在测试运行之前登录,以允许我的测试成为一个经过身份验证的用户,这将允许他们访问我正在测试的页面。我已经研究和测试了几天,现在我不知所措。任何帮助将不胜感激。
5vf7fwbs1#
您可以强制转换为一个具体的类型,例如RemoteWebDriver,它们都是从该类型继承的,并且还实现getSessionId:
((RemoteWebDriver) driver).getSessionId()
zzoitvuj2#
我在Java中遇到过这个问题,但是仔细检查源代码后,我注意到我使用的驱动程序被示例化为WebDriver对象,在将其更改为RemoteWebDriver对象后,.getSessionId()方法被公开,driver.getSessionId()如预期的那样返回了会话ID。我不确定这将如何转换为PHP,但我建议返回并检查以确保您的驱动程序是RemoteWebDriver对象,而不是WebDriver对象。
WebDriver
RemoteWebDriver
.getSessionId()
driver.getSessionId()
2条答案
按热度按时间5vf7fwbs1#
您可以强制转换为一个具体的类型,例如RemoteWebDriver,它们都是从该类型继承的,并且还实现getSessionId:
zzoitvuj2#
我在Java中遇到过这个问题,但是仔细检查源代码后,我注意到我使用的驱动程序被示例化为
WebDriver
对象,在将其更改为RemoteWebDriver
对象后,.getSessionId()
方法被公开,driver.getSessionId()
如预期的那样返回了会话ID。我不确定这将如何转换为PHP,但我建议返回并检查以确保您的驱动程序是
RemoteWebDriver
对象,而不是WebDriver
对象。