public ElementFinder(CssFinder newCssSelector, String newXPathExpression, ElementFinder previous) { this(previous.webDriver, newCssSelector, previous.getXPathAndFilterFinder().newXPathExpressionKeepingEverythingElse(newXPathExpression)); }
public ElementFinder(CssFinder newCssSelector, String newXPathExpression, ElementFinder previous) { this(previous.webDriver, newCssSelector, previous.getXPathAndFilterFinder().newXPathExpressionKeepingEverythingElse(newXPathExpression)); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { String joinedXPathExps = astCssNotPseudoClass.getArgument().stream() .map(cssSelector -> cssSelector.toElementFinder(webDriver).getXPathAndFilterFinder().getRawXPathExpression()) .collect(Collectors.joining(" | ")); return XPathAndFilterFinder.pureXPath("not("+joinedXPathExps+")"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { String joinedXPathExps = astCssNotPseudoClass.getArgument().stream() .map(cssSelector -> cssSelector.toElementFinder(webDriver).getXPathAndFilterFinder().getRawXPathExpression()) .collect(Collectors.joining(" | ")); return XPathAndFilterFinder.pureXPath("not("+joinedXPathExps+")"); }
default ElementFinder __createFinderForUnsupportedPseudo(ElementFinder leftFinder, WebDriver webDriver) { return new ElementFinder( webDriver, CSS_NOT_NATIVELY_SUPPORTED, leftFinder.getXPathAndFilterFinder().merge(toXPath(webDriver), xPathMergeStrategy()) ); }
default ElementFinder __createFinderForUnsupportedPseudo(ElementFinder leftFinder, WebDriver webDriver) { return new ElementFinder( webDriver, CSS_NOT_NATIVELY_SUPPORTED, leftFinder.getXPathAndFilterFinder().merge(toXPath(webDriver), xPathMergeStrategy()) ); }
default ElementFinder __createFinderForNativelySupportedPseudo(ElementFinder leftFinder, WebDriver webDriver) { return new ElementFinder( webDriver, leftFinder.getCssFinder().merge(toCssWhenNativelySupported(webDriver)), leftFinder.getXPathAndFilterFinder().merge(toXPath(webDriver), xPathMergeStrategy()) ); }
default ElementFinder __createFinderForNativelySupportedPseudo(ElementFinder leftFinder, WebDriver webDriver) { return new ElementFinder( webDriver, leftFinder.getCssFinder().merge(toCssWhenNativelySupported(webDriver)), leftFinder.getXPathAndFilterFinder().merge(toXPath(webDriver), xPathMergeStrategy()) ); }
@Test public void toElementFinder__should_return_ONLY_true_as_raw_XPathexpression() { // given CssTagNameSelector tagNameSelector = new CssTagNameSelector("*"); // when ElementFinder elementFinder = tagNameSelector.toElementFinder(createWebDriverDummy()); // then assertThat(elementFinder.getXPathAndFilterFinder().getRawXPathExpression(), is("true()")); }