下面列出了怎么用org.openqa.selenium.By.ByName的API类实例代码及写法,或者点击链接到github查看源代码。
private static Map<Class<? extends By>, String> getLocatorToXPathTemplateMap() {
Map<Class<? extends By>, String> locatorToXPathTemplateMap = new HashMap<>();
locatorToXPathTemplateMap.put(ByClassName.class, "//*[contains(@class,'%s')]");
locatorToXPathTemplateMap.put(ByName.class, "//*[@name='%s']");
locatorToXPathTemplateMap.put(ById.class, "//*[@id='%s']");
locatorToXPathTemplateMap.put(ByIdOrName.class, "//*[@id='%1$s' or @name='%1$s']");
return locatorToXPathTemplateMap;
}
@DataProvider(name = "locatorDP")
public static Iterator<Object[]> testData() {
ArrayList<Object[]> data = new ArrayList<Object[]>();
data.add(new Object[]{"id=eleId", ById.class});
data.add(new Object[]{"name=eleName", ByName.class});
data.add(new Object[]{"css=#eleId.className", ByCssSelector.class});
data.add(new Object[]{"tagName=div", ByTagName.class});
data.add(new Object[]{"link=Link Text", ByLinkText.class});
data.add(new Object[]{"partialLink=Link Text", ByPartialLinkText.class});
data.add(new Object[]{"['css=#qa','name=eleName']", ByAny.class});
// self descriptive
data.add(new Object[]{"{'locator' : 'id=eleId'; 'desc' : 'locate element by id'}",
ById.class});
data.add(new Object[]{
"{'locator' : 'name=eleName'; 'desc' : 'locate element by name'}",
ByName.class});
data.add(new Object[]{
"{'locator' : 'css=#eleId.className'; 'desc' : 'locate element by css'}",
ByCssSelector.class});
data.add(new Object[]{
"{'locator' : ['css=#qa','name=eleName']; 'desc' : 'locate element by css'}",
ByAny.class});
data.add(new Object[]{"xpath=//*[text()='Albany-Rensselaer, NY (ALB)']",
ByXPath.class});
return data.iterator();
}