@Override public CssPseudoClassCondition visit(AstCssCheckedPseudoClass astCssCheckedPseudoClass) { return new CssCheckedPseudoClass(); }
@Override public boolean isThisCSSPseudoClassNativelySupportedOn(WebDriver webDriver) { return CssCheckedPseudoClass.isDriverWhereCheckedSelectorHasNoBugs(webDriver) && MaybeNativelySupportedPseudoClass.super.isThisCSSPseudoClassNativelySupportedOn(webDriver); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return new XPathAndFilterFinder(xPathExpression(), CheckedPseudoClass.CHECKED_FILTER); }
@Test public void toElementFinder__when_driver_has_native_supportx() { // supports pure CSS, but it is a translated one WebDriver mockDriverWithNativeSupportForChecked = ElementFinderUtilsTest.createWebDriverWithNativeSupportForPseudo(CHECKED_PSEUDO); ElementFinder finderAfterChecked = new CssCheckedPseudoClass().toElementFinder(universalSelectorFinder(mockDriverWithNativeSupportForChecked)); assertPseudoClassHasFinder( new CssSelectedPseudoClass(), finderAfterChecked, "option:checked:checked", PURE_CSS_IS_SUPPORTED, CHECKED_AND_SELECTED_XPATH_EXPRESSION, contains(CheckedPseudoClass.CHECKED_FILTER, SelectedPseudoClass.SELECTED_FILTER) ); }
@Override public CssPseudoClassCondition visit(AstCssCheckedPseudoClass astCssCheckedPseudoClass) { return new CssCheckedPseudoClass(); }
@Override public boolean isThisCSSPseudoClassNativelySupportedOn(WebDriver webDriver) { return CssCheckedPseudoClass.isDriverWhereCheckedSelectorHasNoBugs(webDriver) && MaybeNativelySupportedPseudoClass.super.isThisCSSPseudoClassNativelySupportedOn(webDriver); }
@Override public XPathAndFilterFinder toXPath(WebDriver webDriver) { return new XPathAndFilterFinder(xPathExpression(), CheckedPseudoClass.CHECKED_FILTER); }
@Test public void toElementFinder__when_driver_does_NOT_have_native_support() { assertPseudoClassDoesNotSupportAnythingPurelyWhenNotNativelySupported( new CssCheckedPseudoClass(), CHECKED_XPATH_EXPRESSION, CheckedPseudoClass.CHECKED_FILTER ); }
@Override public boolean isThisCSSPseudoClassNativelySupportedOn(WebDriver webDriver) { return isDriverWhereCheckedSelectorHasNoBugs(webDriver) && MaybeNativelySupportedPseudoClass.super.isThisCSSPseudoClassNativelySupportedOn(webDriver); }
@Test public void toElementFinder__when_driver_has_native_support() { assertPseudoSupportsOnlyPureCssAndNotPureXPathWhenNativelySupported( new CssCheckedPseudoClass(), CHECKED_PSEUDO, CHECKED_XPATH_EXPRESSION, CheckedPseudoClass.CHECKED_FILTER ); }
@Override public boolean isThisCSSPseudoClassNativelySupportedOn(WebDriver webDriver) { return isDriverWhereCheckedSelectorHasNoBugs(webDriver) && MaybeNativelySupportedPseudoClass.super.isThisCSSPseudoClassNativelySupportedOn(webDriver); }
/** * #Cross-Driver * PhantomJSDriver's :checked has bugs! * See: {@link PhantomJSCheckedSelectorBugTest} */ @Test public void toElementFinder__when_driver_is_PHANTOMJSDRIVER_it_behaves_like_it_does_NOT_have_native_support() { ElementFinder previousFinder = ElementFinderUtilsTest.universalSelectorFinder(createWebDriverEmulatingPhantomJSAndWithNativeSupporForPseudo(CHECKED_PSEUDO)); assertPseudoClassHasFinder( new CssCheckedPseudoClass(), previousFinder, CSS_UNIVERSAL_SELECTOR, PURE_CSS_IS_NOT_SUPPORTED, CHECKED_XPATH_EXPRESSION, contains(CheckedPseudoClass.CHECKED_FILTER) ); }