2017-03-07 55 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”。