Java 类org.openqa.selenium.internal.FindsByXPath 实例源码
项目:adf-selenium
文件:AdfFinder.java
@Override
public List<WebElement> findElements(SearchContext searchContext) {
logger.finer("finding label " + label + " in " + searchContext);
String safeLabel;
if (label.contains("'")) {
// replace each ' with ', "'", ' so we can use it in a concat expression
// makes concat('O', "'", 'Neil') from O'Neil
safeLabel = "concat('" + label.replace("'", "', \"'\", '") + "')";
} else {
safeLabel = "'" + label + "'";
}
// start from . for instances where we are searching within a scoped element
// tr elements having a _afrrk (rowkey) attribute are considered tree nodes
String xpath = ".//tr[@_afrrk and .//span[text()=" + safeLabel + "]]";
logger.finer("using xpath " + xpath);
return ((FindsByXPath) searchContext).findElementsByXPath(xpath);
}
项目:cucumber-framework-java
文件:ByExtended.java
@Override
public List<WebElement> findElements(SearchContext context) {
long t0 = System.currentTimeMillis();
try {
return ((FindsByXPath) context)
.findElementsByXPath(ownXpathExpression);
} finally {
long l = System.currentTimeMillis()-t0;
if (l > 100) {
LOG.warn("SLOW findElements() = {}ms. Slow selector : {} ", l, ownXpathExpression);
}
}
}
项目:cucumber-framework-java
文件:ByExtended.java
@Override
public WebElement findElement(SearchContext context) {
long t0 = System.currentTimeMillis();
try {
int indexOf = ownXpathExpression.indexOf("//", 3);
if (indexOf > -1) { // we found an // inside the selector
String[] splitSelectors = ownXpathExpression.substring(2).split(Pattern.quote("//"));
WebElement parent = ((FindsByXPath) context).findElementByXPath("//"+splitSelectors[0]);
for (int i = 1; i < splitSelectors.length; i++) {
if (parent == null) {
throw new WebDriverException("Failed to match the parent selector : "+splitSelectors[i-1]);
}
WebElement found = parent.findElement(By.xpath(".//"+splitSelectors[i]));
if (found != null) {
parent = found;
} else {
throw new WebDriverException("Failed to match the selector : "+splitSelectors[i]+" within "+ownXpathExpression);
}
}
// by here, we should have the parent WebElement to contain what we want.
//LOG.info("Found compound selector : "+parent.toString());
return parent;
}
// simple case: one selector
return ((FindsByXPath) context).findElementByXPath(ownXpathExpression);
} finally {
long l = System.currentTimeMillis()-t0;
if (l > 100) {
LOG.warn("SLOW findElement() = {}ms. Slow selector : {} ", l, ownXpathExpression);
}
}
}
项目:stevia
文件:ByExtended.java
@Override
public List<WebElement> findElements(SearchContext context) {
long t0 = System.currentTimeMillis();
try {
return ((FindsByXPath) context)
.findElementsByXPath(ownXpathExpression);
} finally {
long l = System.currentTimeMillis()-t0;
if (l > 100) {
LOG.warn("SLOW findElements() = {}ms. Slow selector : {} ", l, ownXpathExpression);
}
}
}
项目:stevia
文件:ByExtended.java
@Override
public WebElement findElement(SearchContext context) {
long t0 = System.currentTimeMillis();
try {
int indexOf = ownXpathExpression.indexOf("//", 3);
if (indexOf > -1) { // we found an // inside the selector
String[] splitSelectors = ownXpathExpression.substring(2).split(Pattern.quote("//"));
WebElement parent = ((FindsByXPath) context).findElementByXPath("//"+splitSelectors[0]);
for (int i = 1; i < splitSelectors.length; i++) {
if (parent == null) {
throw new WebDriverException("Failed to match the parent selector : "+splitSelectors[i-1]);
}
WebElement found = parent.findElement(By.xpath(".//"+splitSelectors[i]));
if (found != null) {
parent = found;
} else {
throw new WebDriverException("Failed to match the selector : "+splitSelectors[i]+" within "+ownXpathExpression);
}
}
// by here, we should have the parent WebElement to contain what we want.
//LOG.info("Found compound selector : "+parent.toString());
return parent;
}
// simple case: one selector
return ((FindsByXPath) context).findElementByXPath(ownXpathExpression);
} finally {
long l = System.currentTimeMillis()-t0;
if (l > 100) {
LOG.warn("SLOW findElement() = {}ms. Slow selector : {} ", l, ownXpathExpression);
}
}
}
项目:Selenium-Foundation
文件:RobustElementFactory.java
/**
* Main robust web element constructor
*
* @param element element reference to be wrapped (may be 'null')
* @param context element search context
* @param locator element locator
* @param index element index
*/
public RobustElementWrapper(WebElement element, WrapsContext context, By locator, int index) {
// if specified element is already robust
if (element instanceof RobustWebElement) {
RobustElementWrapper wrapper = ((InterceptionAccessor) element).getInterceptor();
this.acquiredAt = wrapper.acquiredAt;
this.wrapped = wrapper.wrapped;
this.context = wrapper.context;
this.locator = wrapper.locator;
this.index = wrapper.index;
} else {
Objects.requireNonNull(context, "[context] must be non-null");
Objects.requireNonNull(locator, "[locator] must be non-null");
if (index < OPTIONAL) {
throw new IndexOutOfBoundsException("Specified index is invalid");
}
this.wrapped = element;
this.context = context;
this.locator = locator;
this.index = index;
}
driver = WebDriverUtils.getDriver(this.context.getWrappedContext());
findsByCssSelector = (driver instanceof FindsByCssSelector);
findsByXPath = (driver instanceof FindsByXPath);
if ((this.index == OPTIONAL) || (this.index > 0)) {
if (findsByXPath && ( ! (this.locator instanceof By.ByCssSelector))) {
selector = ByType.xpathLocatorFor(this.locator);
if (this.index > 0) {
selector += "[" + (this.index + 1) + "]";
}
strategy = Strategy.JS_XPATH;
this.locator = By.xpath(this.selector);
} else if (findsByCssSelector) {
selector = ByType.cssLocatorFor(this.locator);
if (selector != null) {
strategy = Strategy.JS_CSS;
}
}
}
if (this.wrapped == null) {
if (this.index == OPTIONAL) {
acquireReference(this);
} else {
refreshReference(null);
}
} else if (acquiredAt == 0) {
acquiredAt = System.currentTimeMillis();
}
}
项目:bobcat
文件:WebDriverWrapper.java
/**
* Finds element by xpath.
*/
@Override
public WebElement findElementByXPath(String xPath) {
return ((FindsByXPath) super.getWrappedDriver()).findElementByXPath(xPath);
}
项目:bobcat
文件:WebDriverWrapper.java
/**
* Finds elements by xpath.
*/
@Override
public List<WebElement> findElementsByXPath(String xPath) {
return ((FindsByXPath) super.getWrappedDriver()).findElementsByXPath(xPath);
}
项目:redsniff
文件:ByWicketPath.java
@Override
public List<WebElement> findElements(SearchContext context) {
return ((FindsByXPath) context).findElementsByXPath(xpathExpression);
}
项目:redsniff
文件:ByWicketPath.java
@Override
public WebElement findElement(SearchContext context) {
return ((FindsByXPath) context).findElementByXPath(xpathExpression);
}
项目:darcy-webdriver
文件:ByPartialAttribute.java
@Override
public List<WebElement> findElements(SearchContext context) {
return ((FindsByXPath) context).findElementsByXPath(".//*["
+ attributeContains(attribute, word) + "]");
}
项目:darcy-webdriver
文件:ByPartialAttribute.java
@Override
public WebElement findElement(SearchContext context) {
return ((FindsByXPath) context).findElementByXPath(".//*["
+ attributeContains(attribute, word) + "]");
}
项目:darcy-webdriver
文件:ByAttribute.java
@Override
public List<WebElement> findElements(SearchContext context) {
return ((FindsByXPath) context).findElementsByXPath(".//*["
+ attributeEquals(attribute, word) + "]");
}
项目:darcy-webdriver
文件:ByAttribute.java
@Override
public WebElement findElement(SearchContext context) {
return ((FindsByXPath) context).findElementByXPath(".//*["
+ attributeEquals(attribute, word) + "]");
}
项目:darcy-webdriver
文件:ByPartialVisibleText.java
@Override
public List<WebElement> findElements(SearchContext context) {
return ((FindsByXPath) context).findElementsByXPath(".//*["
+ textContains(text) + "]");
}
项目:darcy-webdriver
文件:ByPartialVisibleText.java
@Override
public WebElement findElement(SearchContext context) {
return ((FindsByXPath) context).findElementByXPath(".//*["
+ textContains(text) + "]");
}
项目:darcy-webdriver
文件:ByPartialVisibleTextIgnoreCase.java
@Override
public List<WebElement> findElements(SearchContext context) {
return ((FindsByXPath) context).findElementsByXPath(".//*["
+ textContainsIgnoringCase(text) + "]");
}
项目:darcy-webdriver
文件:ByPartialVisibleTextIgnoreCase.java
@Override
public WebElement findElement(SearchContext context) {
return ((FindsByXPath) context).findElementByXPath(".//*["
+ textContainsIgnoringCase(text) + "]");
}
项目:darcy-webdriver
文件:TargetedWebElement.java
@Override
public WebElement findElementByXPath(String using) {
return targetedWebElement(((FindsByXPath) element()).findElementByXPath(using));
}
项目:darcy-webdriver
文件:TargetedWebElement.java
@Override
public List<WebElement> findElementsByXPath(String using) {
return targetedWebElements(((FindsByXPath) element()).findElementsByXPath(using));
}
项目:darcy-webdriver
文件:ForwardingTargetedWebDriver.java
@Override
public WebElement findElementByXPath(String using) {
return targetedWebElement(((FindsByXPath) driver()).findElementByXPath(using));
}
项目:darcy-webdriver
文件:ForwardingTargetedWebDriver.java
@Override
public List<WebElement> findElementsByXPath(String using) {
return targetedWebElements(((FindsByXPath) driver()).findElementsByXPath(using));
}