@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { int index = astCssGtPseudoClass.getArgument(); if (index >= 0) { return XPathAndFilterFinder.pureXPath("position() > " + (index + 1)); } return XPathAndFilterFinder.pureXPath("position() > (last()-" + (-index - 1) + ")"); }
@Test public void visitCssGtPseudoClass() { assertVisitorVisitsCorrectClass(new AstCssGtPseudoClass(99)); }
private void assertGtArgumentGeneratesXPath(int gtArgument, String gtXPathExpression) { assertPseudoClass(new CssGtPseudoClass(new AstCssGtPseudoClass(gtArgument))).whenNotNativelySupported().translatesToPureXPath(gtXPathExpression); }
pseudoClassesF.put(AstCssEvenPseudoClass.PSEUDO, a -> new AstCssEvenPseudoClass()); pseudoClassesF.put(AstCssFirstPseudoClass.PSEUDO, a -> new AstCssFirstPseudoClass()); pseudoClassesF.put(AstCssGtPseudoClass.PSEUDO, a -> new AstCssGtPseudoClass(extractIndexArgument(a, AstCssGtPseudoClass.PSEUDO))); pseudoClassesF.put(AstCssHeaderPseudoClass.PSEUDO, a -> new AstCssHeaderPseudoClass()); pseudoClassesF.put(AstCssLangPseudoClass.PSEUDO, a -> new AstCssLangPseudoClass(a));
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { int index = astCssGtPseudoClass.getArgument(); if (index >= 0) { return XPathAndFilterFinder.pureXPath("position() > " + (index + 1)); } return XPathAndFilterFinder.pureXPath("position() > (last()-" + (-index - 1) + ")"); }
pseudoClassesF.put(AstCssEvenPseudoClass.PSEUDO, a -> new AstCssEvenPseudoClass()); pseudoClassesF.put(AstCssFirstPseudoClass.PSEUDO, a -> new AstCssFirstPseudoClass()); pseudoClassesF.put(AstCssGtPseudoClass.PSEUDO, a -> new AstCssGtPseudoClass(extractIndexArgument(a, AstCssGtPseudoClass.PSEUDO))); pseudoClassesF.put(AstCssHeaderPseudoClass.PSEUDO, a -> new AstCssHeaderPseudoClass()); pseudoClassesF.put(AstCssLangPseudoClass.PSEUDO, a -> new AstCssLangPseudoClass(a));