下面列出了怎么用org.openqa.selenium.internal.FindsByCssSelector的API类实例代码及写法,或者点击链接到github查看源代码。
@SuppressWarnings({"squid:S3776", "squid:MethodCyclomaticComplexity"})
public RobustElementWrapper(
final WebElement element, final WrapsContext context, final By locator, final 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();
}
}
/**
* Finds element by css selector.
*/
@Override
public WebElement findElementByCssSelector(String cssSelector) {
return ((FindsByCssSelector) super.getWrappedDriver()).findElementByCssSelector(cssSelector);
}
/**
* Finds elements by css selector.
*/
@Override
public List<WebElement> findElementsByCssSelector(String cssSelector) {
return ((FindsByCssSelector) super.getWrappedDriver()).findElementsByCssSelector(cssSelector);
}
@Override
public WebElement findElementByCssSelector(String using) {
return targetedWebElement(((FindsByCssSelector) element()).findElementByCssSelector(using));
}
@Override
public List<WebElement> findElementsByCssSelector(String using) {
return targetedWebElements(((FindsByCssSelector) element()).findElementsByCssSelector(using));
}
@Override
public WebElement findElementByCssSelector(String using) {
return targetedWebElement(((FindsByCssSelector) driver()).findElementByCssSelector(using));
}
@Override
public List<WebElement> findElementsByCssSelector(String using) {
return targetedWebElements(((FindsByCssSelector) driver()).findElementsByCssSelector(using));
}