将Driver.Instance.FindElement参数作为变量传递

时间:2019-02-21 01:53:17

标签: selenium-webdriver

如何在

中将“ By.Xpath”指定为变量

Driver.Instance.FindElement(变量名称(ClickAt))。SendKeys(ScrollTimeString);

我正在调用一个具有参数“ Searchby”的函数,该函数将根据传递的参数来查找元素。我不想像这样硬编码

如果变量= By.Xpath,则选择Driver.Instance.FindElement(By.Xpath(ClickAt))。SendKeys(ScrollTimeString);

如果变量= By.id,则使用Driver.Instance.FindElement(By.ID(ClickAt))。SendKeys(ScrollTimeString);

1 个答案:

答案 0 :(得分:0)

您可以创建一个通用方法并传递标识符类型和该方法中的路径,并可以根据传递的标识符类型返回Web元素。

例如:

public WebElement getElement(String identifierType, String pathExpression){
switch(identifierType){
    case "xpath":
            return driver.findElement(By.xpath(pathExpression));

    case "id":
            return driver.findElement(By.id(pathExpression));

    case "tagname":
            return driver.findElement(By.tagName(pathExpression));

    default:
            return driver.findElement(By.xpath(pathExpression));
    }
}