最近、私はSelenium 2.0(別名WebDriver)のC#に手を出し始めました。Seleniumを知らない人のために、html id、name、classなどを使用してWebアプリケーションのUIオブジェクトを制御できます。
したがって、要素をクリックすると-
webDriver.FindElement(By.Id(elementLocator)).Click();
ただし、html名、クラス、またはXPathを使用して要素をクリックすることもできます。だからそれは-
webDriver.FindElement(By.Name(elementLocator)).Click();
webDriver.FindElement(By.Xpath(elementLocator)).Click();
すぐに、テスト全体でそのような長いステートメントを使用する代わりに、メソッドで抽象化し、メソッドを使用する必要があることに気付きました。だから私は次のようにメソッドを作成しました-
public static void click(IWebDriver webDriver, int elementLocatorType, String elementLocator)
{
switch (elementLocatorType)
{
case 0:
webDriver.FindElement(By.Id(elementLocator)).Click();
break;
case 1:
webDriver.FindElement(By.Name(elementLocator)).Click();
break;
case 2:
webDriver.FindElement(By.XPath(elementLocator)).Click();
break;
}
}
そしてそれを-として使用します
Commons.click(webDriver, 0, elementLocator)
これ以上改善できるかどうか、たとえば、switchステートメントを避けてより良いものを使用できるかどうか疑問に思っています。