如何将 String 转换为 By 类型。
以下是我的场景:
按以下方式将对象标识保留在属性文件中
username=By.id("username")
password=By.id("password")
在应用程序中我想检索像
Properties prop=new Properties();
prop.load("above properties file path")
driver.findelement(prop.getProperty("username"))
//在 Eclipse 中,它抱怨说“WebDriver 类型中的方法 findElement(By) 不适用于参数 (String)”
那么有人可以帮助我吗?
我可以使用如下或其他格式,但我想要上述的解决方案
username="//*[@id='username']"
username="username"
driver.findElement(By.xpath(prop.getProperty("username"))
driver.findElement(By.id(prop.getProperty("username"))
您可以创建一个解析器方法,该方法将返回所需的定位器对象,如下所示:
public static By locatorParser(String locator) {
By loc = By.id(locator);
if (locator.contains("id"))
loc = By.id(locator.substring(locator.indexOf("\"") + 1,
locator.length() - 2));
else if (locator.contains("name"))
loc = By.name(locator.substring(locator.indexOf("\"") + 1,
locator.length() - 2));
if (locator.contains("xpath"))
loc = By.xpath(locator.substring(locator.indexOf("\"") + 1,
locator.length() - 2));
return loc;
}
可以通过以下方式在您的代码中调用:
driver.findElement(locatorParser(prop.getProperty("username")));
添加了 id、name、xpath 的逻辑。您可以修改相同的方法来添加所有可用的定位器。希望这可以帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)