2017-03-07 54 views
-1

C#工程曾經向我展示過,您可以縮短命令,而不是不斷重新輸入它們,現在我正在編寫一些自動化代碼,我想知道您是如何執行此操作的?如何縮短c中經常使用的代碼#

例如,我分配IWebDriverdriver像這樣:

IWebDriver driver = new ChromeDriver(); 

,現在當我需要查找並點擊網頁上的東西,我每次必須代碼如下:

driver.FindElement(By.XPath**("//input[@id='ctl00_ctl00_ctl00_Main_Main_Main_SearchTextBox']")).SendKeys(templateID); 
driver.FindElement(By.Id**("ctl00_ctl00_ctl00_Main_Main_Main_SearchButton")).Click(); 
driver.FindElement(By.Id**("ctl00_ctl00_ctl00_Main_Main_Main_rptCampaignTemplates_ctl00_gi_lnkGalleryRequest")).Click(); 

我該如何去縮短driver.FindElement(By.Id的東西更容易輸入這樣的:

actionId("ctl00_ctl00_ctl00_Main_Main_Main_SearchButton")).Click(); 
對於IWebDriver類型:
+0

你在尋找代碼片段嗎?下面是你如何在Visual Studio中完成它們:https://msdn.microsoft.com/en-us/library/ms165394.aspx或者,如果你想在任何文本框中發生任何事情,你可以搜索「文本擴展」來查找一些可以做你想做的事情的應用程序。 –

+2

定義一個或三個字符串常量。 –

+0

請正確格式化您的代碼。代碼不是引用文字。代碼是代碼。 – dandan78

回答

2

你可以聲明自己的擴展方法(Extension Methods (C# Programming Guide)見):

public IWebElement ActionId(this IWebDriver driver, string id) 
{ 
     return driver.FindElement(By.Id(id)) 
} 

然後,您可以使用它像這樣:

const string searchButtonId = "ctl00_ctl00_ctl00_Main_Main_Main_SearchButton"; 
driver.ActionId(searchButtonId).Click(); 

我個人寧願一個更具描述性的名稱如「FindElementById」而不是「ActionId」。