我試圖獲得在SauceLabs雲上運行的測試的會話ID,但似乎無法訪問它。在C#中獲取Selenium RemoteWebDriver的會話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();
}
}
它看起來幾乎就像一個'Casting'問題,您可以張貼什麼實際的錯誤是很難看到你發佈的小圖像 – MethodMan
這裏是一個在線指南,可能會幫助你..也可以顯示如何定義這個類我可能能夠爲您提供一個想法,但需要請參閱Class以及它如何爲您的RemoteWebDriver..ho定義你是繼承這個http://testingbot.com/support/getting-started/csharp.html – MethodMan
所以,我應該只是創建一個派生類來投射我的RemoteWebDriver,然後通過getter方法訪問會話ID? – elucid8