/** * E ~ PRE * * @author acdcjunior * @since 0.10.0 */ CssGeneralAdjacentSelector translateGeneralAdjacent(ArgumentMap argumentMap, SiblingSelector sacSiblingSelector) { CssSelector previousSelector = cssSelectorTranslator.translate(argumentMap, sacSiblingSelector.getSelector()); CssSelector siblingSelector = cssSelectorTranslator.translate(argumentMap, sacSiblingSelector.getSiblingSelector()); return new CssGeneralAdjacentSelector(previousSelector, siblingSelector); }
@Test public void toElementFinder() { // given CssTagNameSelector aTagSelector = new CssTagNameSelector("a"); CssTagNameSelector bTagSelector = new CssTagNameSelector("b"); CssGeneralAdjacentSelector generalAdjacentSelector = new CssGeneralAdjacentSelector(aTagSelector, bTagSelector); // when ElementFinder elementFinder = generalAdjacentSelector.toElementFinder(createWebDriverDummy()); // then assertThat(elementFinder.toCssString(), is("a~b")); assertThat(elementFinder.canFetchThroughCssAlone(), is(true)); assertThat(elementFinder.getXPathExpression(), is(".//*[self::a]/following-sibling::*[self::b]")); assertThat(elementFinder.getElementFilterList().getElementFilters(), empty()); }
@Test public void translate() { // given CssSelector cssSelector = ParseTreeBuilder.parse("a ~ b").firstSelector(); assertThat(cssSelector, instanceOf(CssGeneralAdjacentSelector.class)); // when CssSelector ancestorSelector = ((CssGeneralAdjacentSelector) cssSelector).getLeftSideSelector(); CssSelector descendantSelector = ((CssGeneralAdjacentSelector) cssSelector).getRightSideSelector(); // then assertThat(ancestorSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) ancestorSelector).getTagName(), is("a")); assertThat(descendantSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) descendantSelector).getTagName(), is("b")); }
/** * E ~ PRE * * @author acdcjunior * @since 0.10.0 */ CssGeneralAdjacentSelector translateGeneralAdjacent(ArgumentMap argumentMap, SiblingSelector sacSiblingSelector) { CssSelector previousSelector = cssSelectorTranslator.translate(argumentMap, sacSiblingSelector.getSelector()); CssSelector siblingSelector = cssSelectorTranslator.translate(argumentMap, sacSiblingSelector.getSiblingSelector()); return new CssGeneralAdjacentSelector(previousSelector, siblingSelector); }