@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return XPathAndFilterFinder.pureXPath(SUBMIT_XPATH_EXPRESSION); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return XPathAndFilterFinder.pureXPath("(position() mod 2) = 0"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return XPathAndFilterFinder.pureXPath(SUBMIT_XPATH_EXPRESSION); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return XPathAndFilterFinder.pureXPath("count(.//*) = 0"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return XPathAndFilterFinder.pureXPath(ENABLED_XPATH); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return XPathAndFilterFinder.pureXPath("((self::input and " + TYPE_ATTR_LC_VAL + " = 'button') or self::button)"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { int index = astCssEqPseudoClass.getArgument(); if (index >= 0) { return XPathAndFilterFinder.pureXPath("position() = " + (index + 1)); } int positionFromLast = -index - 1; if (positionFromLast == 0) { return XPathAndFilterFinder.pureXPath("position() = last()"); } return XPathAndFilterFinder.pureXPath("position() = (last()-" + positionFromLast + ")"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { int index = astCssEqPseudoClass.getArgument(); if (index >= 0) { return XPathAndFilterFinder.pureXPath("position() = " + (index + 1)); } int positionFromLast = -index - 1; if (positionFromLast == 0) { return XPathAndFilterFinder.pureXPath("position() = last()"); } return XPathAndFilterFinder.pureXPath("position() = (last()-" + positionFromLast + ")"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { NthArgument nthArgument = getNthChildArgument(); return XPathAndFilterFinder.pureXPath(nthArgument.toXPath("position()")); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { NthArgument nthArgument = getNthChildArgument(); return XPathAndFilterFinder.pureXPath(nthArgument.toXPath("(last()+1-position())")); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { NthArgument nthArgument = getNthChildArgument(); return XPathAndFilterFinder.pureXPath(nthArgument.toXPath("(last()+1-position())")); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { NthArgument nthArgument = getNthChildArgument(); return XPathAndFilterFinder.pureXPath(nthArgument.toXPath("position()")); }
@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+")"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { String textToContain = astCssContainsPseudoClass.getArgument(); textToContain = SelectorUtils.unescapeString(textToContain); String wantedTextToContain = SelectorUtils.intoEscapedXPathString(textToContain); return XPathAndFilterFinder.pureXPath("contains(string(.), " + wantedTextToContain + ")"); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { String textToContain = astCssContainsPseudoClass.getArgument(); textToContain = SelectorUtils.unescapeString(textToContain); String wantedTextToContain = SelectorUtils.intoEscapedXPathString(textToContain); return XPathAndFilterFinder.pureXPath("contains(string(.), " + wantedTextToContain + ")"); }