下面列出了org.openqa.selenium.By#ByLinkText ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Get the CSS locator string that reproduces the specified Selenium locator
*
* @param locator Selenium locator
* @return CSS locator string; 'null' if unconvertible
*/
@SuppressWarnings("squid:S1142")
public static String cssLocatorFor(final By locator) {
String val = valueOf(locator);
if (locator instanceof By.ByClassName) {
return "." + val;
} else if (locator instanceof By.ByCssSelector) {
return val;
} else if (locator instanceof By.ById) {
return "#" + val;
} else if (locator instanceof By.ByLinkText) {
LOGGER.warn(UNSUPPORTED_FOR_CSS, "ByLinkText");
} else if (locator instanceof By.ByName) {
return "[name=" + val + "]";
} else if (locator instanceof By.ByPartialLinkText) {
LOGGER.warn(UNSUPPORTED_FOR_CSS, "ByPartialLinkText");
} else if (locator instanceof By.ByTagName) {
return val;
} else if (locator instanceof By.ByXPath) {
LOGGER.warn(UNSUPPORTED_FOR_CSS, "ByXPath");
}
return null;
}
/**
* Get the XPath locator string that reproduces the specified Selenium locator
*
* @param locator Selenium locator
* @return XPath locator string; 'null' if unconvertible
*/
@SuppressWarnings("squid:S1142")
public static String xpathLocatorFor(final By locator) {
String val = valueOf(locator);
if (locator instanceof By.ByClassName) {
return ".//*[contains(concat(' ',@class,' '),' " + val + " ')]";
} else if (locator instanceof By.ByCssSelector) {
LOGGER.warn(UNSUPPORTED_FOR_XPATH, "ByCssSelector");
} else if (locator instanceof By.ById) {
return ".//*[@id='" + val + "']";
} else if (locator instanceof By.ByLinkText) {
return ".//a[.='" + val + "']";
} else if (locator instanceof By.ByName) {
return ".//*[@name='" + val + "']";
} else if (locator instanceof By.ByPartialLinkText) {
return ".//a[text()[contains(.,'" + val + "')]]";
} else if (locator instanceof By.ByTagName) {
return ".//" + val;
} else if (locator instanceof By.ByXPath) {
return val;
}
return null;
}
private By getFindByAnno(FindBy anno){
log.info(anno);
switch (anno.how()) {
case CLASS_NAME:
return new By.ByClassName(anno.using());
case CSS:
return new By.ByCssSelector(anno.using());
case ID:
return new By.ById(anno.using());
case LINK_TEXT:
return new By.ByLinkText(anno.using());
case NAME:
return new By.ByName(anno.using());
case PARTIAL_LINK_TEXT:
return new By.ByPartialLinkText(anno.using());
case XPATH:
return new By.ByXPath(anno.using());
default :
throw new IllegalArgumentException("Locator not Found : " + anno.how() + " : " + anno.using());
}
}