如何使用id,class等类型定位或识别元素。此外,BY是一个抽象类。如果可能的话我们如何为它创建对象?我们知道,如果没有另一个类实现它,我们就无法直接为抽象创建对象。在我们直接在脚本中使用
之前,我想知道它背后的情况公共抽象类By 扩展java.lang.Object
我已经浏览了“https://selenium.googlecode.com/git/docs/api/java/org/openqa/selenium/By.html”
链接答案 0 :(得分:3)
我还需要相同的功能,但不是使用下面的代码创建通过功能实现的对象。基本上findElement
方法使用By来定位元素。
String xPath = "xpath=//*[@text='some text']";
//String xPath = "name='some text'";
//String xPath = "id=xxxx";
driver.findElement(getBy(xPath));
private By getBy(String locator) {
String[] parts = locator.split("=", 2);
By by = null;
switch (parts[0].trim()) {
case "xpath":
by = By.xpath(parts[1]);
break;
case "name":
by = By.name(parts[1]);
break;
case "link":
by = By.linkText(parts[1]);
break;
case "id":
by = By.id(parts[1]);
break;
case "css":
by = By.cssSelector(parts[1]);
break;
default:
throw new RuntimeException("invalid locator");
}
return by;
}
希望这会对你有所帮助。
答案 1 :(得分:0)