@Override public CssCondition visit(AstCssClassAttributeCondition astCssClassAttributeCondition) { return new CssClassAttributeCondition(astCssClassAttributeCondition); }
@Override public CssCondition visit(AstCssClassAttributeCondition astCssClassAttributeCondition) { return new CssClassAttributeCondition(astCssClassAttributeCondition); }
@Test public void toElementFinder() { // given CssClassAttributeCondition classAttributeCondition = new CssClassAttributeCondition(new AstCssClassAttributeCondition("clazz")); ElementFinder previous = ElementFinderUtilsTest.UNIVERSAL_SELECTOR_FINDER; // when ElementFinder elementFinder = classAttributeCondition.toElementFinder(previous); // then assertThat(elementFinder.toCssString(), is(".clazz")); assertThat(elementFinder.canFetchThroughCssAlone(), is(true)); assertThat(elementFinder.getXPathExpression(), is(".//*[contains(concat(' ', normalize-space(@class), ' '), ' clazz ')]")); assertThat(elementFinder.getElementFilterList().getElementFilters(), empty()); }
@Test public void toElementFinder() { // given CssTagNameSelector tagNameSelector = new CssTagNameSelector("tagg"); CssClassAttributeCondition classAttributeCondition = new CssClassAttributeCondition(new AstCssClassAttributeCondition("clz")); // tagg.clz CssConditionalSelector conditionalSelector = new CssConditionalSelector(tagNameSelector, classAttributeCondition); // when ElementFinder elementFinder = conditionalSelector.toElementFinder(createWebDriverDummy()); // then assertThat(elementFinder.toCssString(), is("tagg.clz")); assertThat(elementFinder.canFetchThroughCssAlone(), is(true)); assertThat(elementFinder.getXPathExpression(), is(".//*[self::tagg and contains(concat(' ', normalize-space(@class), ' '), ' clz ')]")); assertThat(elementFinder.getElementFilterList().getElementFilters(), empty()); }
@Test public void toElementFinder__with_ElementFinder_arg() { // given CssTagNameSelector aTagSelector = new CssTagNameSelector("a"); CssTagNameSelector bTagSelector = new CssTagNameSelector("b"); CssClassAttributeCondition classAttributeCondition = new CssClassAttributeCondition(new AstCssClassAttributeCondition("condition")); CssConditionalSelector conditionalSelector = new CssConditionalSelector(bTagSelector, classAttributeCondition); // a b.condition CssDescendantSelector descendantSelector = new CssDescendantSelector(aTagSelector, conditionalSelector); // when ElementFinder elementFinder = descendantSelector.toElementFinder(createWebDriverDummy()); // then assertThat(elementFinder.toCssString(), is("a b.condition")); assertThat(elementFinder.canFetchThroughCssAlone(), is(true)); assertThat(elementFinder.getXPathExpression(), is(".//*[self::a]//*[self::b and contains(concat(' ', normalize-space(@class), ' '), ' condition ')]")); assertThat(elementFinder.getElementFilterList().getElementFilters(), empty()); }
@Test public void toElementFinder() { // given CssIdAttributeCondition idCondition = new CssIdAttributeCondition(new AstCssIdAttributeCondition("my-id")); CssClassAttributeCondition classCondition = new CssClassAttributeCondition(new AstCssClassAttributeCondition("class-name")); CssAndCondition andCondition = new CssAndCondition(new AstCssAndCondition(idCondition, classCondition)); // when ElementFinder elementFinder = andCondition.toElementFinder(UNIVERSAL_SELECTOR_FINDER); // then assertThat(elementFinder.toCssString(), is("#my-id.class-name")); assertThat(elementFinder.canFetchThroughCssAlone(), is(true)); assertThat(elementFinder.getXPathExpression(), is(".//*[@id = 'my-id' and contains(concat(' ', normalize-space(@class), ' '), ' class-name ')]")); assertThat(elementFinder.getElementFilterList().getElementFilters(), empty()); }