SauceLabs クラウドで実行されているテストのセッション ID を取得しようとしていますが、アクセスできないようです。
私は次のアプローチを試しました:
//Returns null
var sessionId = (string)((RemoteWebDriver)driver).Capabilities.GetCapability("webdriver.remote.sessionid");
//Will not compile
sessionId = ((RemoteWebDriver)driver).SessionId; //This is protected.
2 番目のアプローチは特に混乱を招きます。これは保護されたプロパティですが、派生クラスからしかアクセスできない場合、必要なものには本質的に役に立ちません。
どんな助けでも大歓迎です。
これを機能させるには、から派生したクラスを作成し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();
}
}