我以前見過這個討論過幾次,我不確定這是否對我來說是最好的事情,所以有任何改進的建議都會受到歡迎。獲取傳遞給方法的變量的聲明名稱C#
我想爲我的Selenium測試建立一些詳細的日誌記錄。
我有一個方法調用,它是:
Admin_Login.Username.SetText("MyUsername");
Admin_Login僅僅是一個標準的類。但是「用戶名」是傳遞到「的setText」方法的變量,如下圖所示:
public static void SetText(this By identifier, string value)
{
StackTrace stackTrace = new StackTrace();
string methodName = stackTrace.GetFrame(1).GetMethod().Name;
string className = stackTrace.GetFrame(1).GetMethod().DeclaringType.FullName;
//I do some logging here for the manual testers so they can debug after a run
TestDriver.ResultsLog.LogComment("Class: " + className);
TestDriver.ResultsLog.LogComment("Calling Method: " + methodName);
TestDriver.ResultsLog.LogComment("Calling Element: " + identifier.toString());
IWebElement element = WebDriver.driver.FindElementSafe(identifier);
((IJavaScriptExecutor)WebDriver.driver).ExecuteScript("arguments[0].value = arguments[1]", element, value);
}
以供參考,在這裏是管理類:
public class Admin_Login
{
public static By Username = By.Id("ctl00_MainContent_ctlLoginView_ctlLogin_UserName");
}
所以我可以登錄類名和方法名稱很好,但我需要找到的是傳入方法的「標識符」變量的聲明名稱。
所以在這種情況下,值應該是「用戶名」。
我已經嘗試了一些建議,產生標識符的名稱作爲「標識符」,但這真的不是我想要的。我需要知道哪個對象的SetText方法被關閉,如果這是有道理的。
正如我所說,也許我不會這樣做的正確方式,所以任何建議都會有所幫助。
這也有助於有什麼用「手動測試人員「?如果他們有權訪問調試器並希望使用調試器,他們應該使用它。 – Arran 2014-10-06 16:32:23
手動測試人員不是編碼人員,因此他們將分析HTML結果日誌,告訴他們測試失敗的原因以及原因。這樣他們就可以向自動化團隊或其團隊中的開發人員報告。 他們不希望使用調試器。 調試不一定要使用物理調試器工具:) – Festivejelly 2014-10-08 08:24:16