下面列出了org.openqa.selenium.By#findElements ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Override
public List<WebElement> findElements( SearchContext context )
{
List<WebElement> elems = new ArrayList<>();
for ( By by : bys )
{
List<WebElement> elementList = by.findElements( context );
resultList.addAll( ( (ReportableBy) by ).getResults() );
if ( elementList != null && !elementList.isEmpty())
{
elems.addAll( by.findElements( context ) );
return elems;
}
}
return elems;
}
/**
* Converts By to Function returning first result (or null).
* @param by by to convert.
* @return function returning first result of by.
*/
public static <T extends WebElement> Function<SearchContext, T> byToFunction(By by) {
Function<SearchContext, T> function;
if (by instanceof SingleElementOrNullBy) {
// will not throw exception, but return null when no element is found
function = sc -> (T) by.findElement(sc);
} else {
function = sc -> {
// single element case will throw exception when no element is found
List elements = by.findElements(sc);
return (elements != null && !elements.isEmpty())? (T) elements.get(0) : null;
};
}
return function;
}
@Override
public List<WebElement> findElements(By locator) {
if (locator instanceof By.StandardLocator) {
return ((By.StandardLocator) locator).findElements(this, this::findElements);
} else {
return locator.findElements(this);
}
}
@Override
public List<WebElement> findElements(By locator) {
if (locator instanceof By.StandardLocator) {
return ((By.StandardLocator) locator).findElements(this, this::findElements);
} else {
return locator.findElements(this);
}
}
@Override
public List<WebElement> findElements(SearchContext context) {
for (By by : bys) {
try {
final List<WebElement> element = by.findElements(context);
if (element != null && element.size() > 0) {
return element;
}
} catch (Exception e) {
// ignored
}
}
return null;
}