/** * {@code PARENT > ELEMENT} * * @author acdcjunior * @since 0.10.0 */ CssDirectDescendantSelector translateDirectDescendant(ArgumentMap argumentMap, DescendantSelector sacDescendantSelector) { CssSelector ancestorSelector = cssSelectorTranslator.translate(argumentMap, sacDescendantSelector.getAncestorSelector()); CssSelector descendantSelector = cssSelectorTranslator.translate(argumentMap, sacDescendantSelector.getSimpleSelector()); return new CssDirectDescendantSelector(ancestorSelector, descendantSelector); }
@Test public void toElementFinder() { // given CssTagNameSelector aTagSelector = new CssTagNameSelector("a"); CssTagNameSelector bTagSelector = new CssTagNameSelector("b"); CssDirectDescendantSelector directDescendantSelector = new CssDirectDescendantSelector(aTagSelector, bTagSelector); // when ElementFinder elementFinder = directDescendantSelector.toElementFinder(createWebDriverDummy()); // then assertThat(elementFinder.toCssString(), is("a>b")); assertThat(elementFinder.canFetchThroughCssAlone(), is(true)); assertThat(elementFinder.getXPathExpression(), is(".//*[self::a]/*[self::b]")); assertThat(elementFinder.getElementFilterList().getElementFilters(), empty()); }
@Test public void translate() { // given CssSelector cssSelector = ParseTreeBuilder.parse("a > b").firstSelector(); assertThat(cssSelector, instanceOf(CssDirectDescendantSelector.class)); // when CssSelector ancestorSelector = ((CssDirectDescendantSelector) cssSelector).getAncestorSelector(); CssSelector descendantSelector = ((CssDirectDescendantSelector) cssSelector).getDescendantSelector(); // then assertThat(ancestorSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) ancestorSelector).getTagName(), is("a")); assertThat(descendantSelector, instanceOf(CssTagNameSelector.class)); assertThat(((CssTagNameSelector) descendantSelector).getTagName(), is("b")); }
/** * {@code PARENT > ELEMENT} * * @author acdcjunior * @since 0.10.0 */ CssDirectDescendantSelector translateDirectDescendant(ArgumentMap argumentMap, DescendantSelector sacDescendantSelector) { CssSelector ancestorSelector = cssSelectorTranslator.translate(argumentMap, sacDescendantSelector.getAncestorSelector()); CssSelector descendantSelector = cssSelectorTranslator.translate(argumentMap, sacDescendantSelector.getSimpleSelector()); return new CssDirectDescendantSelector(ancestorSelector, descendantSelector); }