elu*_*id8 7 c# unit-testing saucelabs selenium-webdriver
我正在尝试获取在SauceLabs云上运行的测试的会话ID,但我似乎无法访问它.
我尝试了以下方法:
//Returns null
var sessionId = (string)((RemoteWebDriver)driver).Capabilities.GetCapability("webdriver.remote.sessionid");
//Will not compile
sessionId = ((RemoteWebDriver)driver).SessionId; //This is protected.
Run Code Online (Sandbox Code Playgroud)
第二种方法特别令人困惑.它是一个受保护的属性,但如果我只能从派生类访问它,那么它对我所需要的东西基本没用.

任何帮助表示赞赏.
为了使其工作,我必须创建一个派生自的类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();
}
}
Run Code Online (Sandbox Code Playgroud)
您可以做什么的示例
class CustomeRemoteDriver : RemoteWebDriver
{
public CustomRemoteDriver(Uri uri, DesiredCapabilities capabilities)
: base(uri, capabilities)
{
}
public SessionId getExecutionID()
{
return ((CustomRemoteDriver)Driver.Browser.driver).SessionId;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8772 次 |
| 最近记录: |