我试图获得正对SauceLabs云中运行一个测试会话ID,但我似乎无法访问它。
我尝试以下方法:
//Returns null
var sessionId = (string)((RemoteWebDriver)driver).Capabilities.GetCapability("webdriver.remote.sessionid");
//Will not compile
sessionId = ((RemoteWebDriver)driver).SessionId; //This is protected.
第二种方法是特别混乱。 这是一个受保护的财产,但如果我只能从派生类访问它,那么它是什么,我需要基本上是无用的。
任何帮助表示赞赏。
为了使这一工作,我不得不创建派生的类RemoteWebDriver
,然后定义一个getter方法。 例如:
class CustomeRemoteDriver : RemoteWebDriver
{
public CustomeRemoteDriver(ICapabilities desiredCapabilities):base(desiredCapabilities)
{
}
public CustomeRemoteDriver(ICommandExecutor commandExecutor, ICapabilities desiredCapabilities):base(commandExecutor, desiredCapabilities)
{
}
public CustomeRemoteDriver(Uri remoteAddress, ICapabilities desiredCapabilities):base(remoteAddress, desiredCapabilities)
{
}
public CustomeRemoteDriver(Uri remoteAddress, ICapabilities desiredCapabilities, TimeSpan commandTimeout):base(remoteAddress, desiredCapabilities, commandTimeout)
{
}
public string GetSessionId()
{
return base.SessionId.ToString();
}
}