private static String getDecendantSelectorString( DescendantSelector selector, String separator) { StringBuilder stringBuilder = new StringBuilder(); String ancestor = toString(selector.getAncestorSelector()); String simpleSelector = toString(selector.getSimpleSelector()); stringBuilder.append(ancestor); stringBuilder.append(separator); stringBuilder.append(simpleSelector); return stringBuilder.toString(); }
switch (s.getSelectorType()) { case Selector.SAC_CHILD_SELECTOR: if (s.getSimpleSelector().getSelectorType() == Selector.SAC_PSEUDO_ELEMENT_SELECTOR) { return valueOf(s.getAncestorSelector()) + ":" + valueOf(s.getSimpleSelector()); } else { return valueOf(s.getAncestorSelector()) + ">" + valueOf(s.getSimpleSelector()); return valueOf(s.getAncestorSelector()) + " " + valueOf(s.getSimpleSelector());
private boolean elementMatchesDescendantSelector(WebDriver driver, WebElement element, DescendantSelector descendantSelector, ArgumentMap argumentMap) { return CssSelectorMatcherService.elementMatchesSelector(driver, element, argumentMap, descendantSelector.getSimpleSelector()); }
private boolean parentMatchesAncestorSelector(WebDriver driver, WebElement parent, DescendantSelector descendantSelector, ArgumentMap argumentMap) { return CssSelectorMatcherService.elementMatchesSelector(driver, parent, argumentMap, descendantSelector.getAncestorSelector()); }
private boolean elementMatchesDescendantSelector(WebDriver driver, WebElement element, DescendantSelector descendantSelector, ArgumentMap argumentMap) { return CssSelectorMatcherService.elementMatchesSelector(driver, element, argumentMap, descendantSelector.getSimpleSelector()); }
private boolean parentMatchesAncestorSelector(WebDriver driver, WebElement parent, DescendantSelector descendantSelector, ArgumentMap argumentMap) { return CssSelectorMatcherService.elementMatchesSelector(driver, parent, argumentMap, descendantSelector.getAncestorSelector()); }
@Override public TagComponent toXPath(ArgumentMap argumentMap, DescendantSelector descendantSelector) { TagComponent parentComponent = XPathComponentCompilerService.compileSelector(argumentMap, descendantSelector.getAncestorSelector()); TagComponent childComponent = XPathComponentCompilerService.compileSelector(argumentMap, descendantSelector.getSimpleSelector()); return DescendantDirectComponent.combine(parentComponent, childComponent); }
switch (s.getSelectorType()) { case Selector.SAC_CHILD_SELECTOR: if (s.getSimpleSelector().getSelectorType() == Selector.SAC_PSEUDO_ELEMENT_SELECTOR) { return valueOf(s.getAncestorSelector()) + ":" + valueOf(s.getSimpleSelector()); } else { return valueOf(s.getAncestorSelector()) + ">" + valueOf(s.getSimpleSelector()); return valueOf(s.getAncestorSelector()) + " " + valueOf(s.getSimpleSelector());
public static Selector createSelectorAndreplaceSelectorVariableWithValue( Selector selector, String variable, String value) throws Exception { SelectorFactoryImpl factory = new SelectorFactoryImpl(); ElementSelector es = factory.createElementSelector( null, ((ElementSelector) selector).getLocalName().replaceAll( variable, value)); if (selector instanceof ConditionalSelector) { return factory.createConditionalSelector(es, ((ConditionalSelector) selector).getCondition()); } else if (selector instanceof DescendantSelector) { return factory.createDescendantSelector(es, ((DescendantSelector) selector).getSimpleSelector()); } else if (selector instanceof ChildSelectorImpl) { return factory.createChildSelector(es, ((DescendantSelector) selector).getSimpleSelector()); } else { throw new Exception("Invalid selector type"); } } }
/** * {@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); }
switch (s.getSelectorType()) { case Selector.SAC_CHILD_SELECTOR: if (s.getSimpleSelector().getSelectorType() == Selector.SAC_PSEUDO_ELEMENT_SELECTOR) { return valueOf(s.getAncestorSelector()) + ":" + valueOf(s.getSimpleSelector()); } else { return valueOf(s.getAncestorSelector()) + ">" + valueOf(s.getSimpleSelector()); return valueOf(s.getAncestorSelector()) + " " + valueOf(s.getSimpleSelector());
DescendantSelector childSelector = (DescendantSelector) selector; String seperator = " > "; if (childSelector.getSimpleSelector() instanceof PseudoElementSelectorImpl) { seperator = "::";
@Override public TagComponent toXPath(ArgumentMap argumentMap, DescendantSelector descendantSelector) { Selector ancestorCSSSelector = descendantSelector.getAncestorSelector(); TagComponent ancestorCompiled = XPathComponentCompilerService.compileSelector(argumentMap, ancestorCSSSelector); SimpleSelector descendantCSSSelector = descendantSelector.getSimpleSelector(); TagComponent childrenCompiled = XPathComponentCompilerService.compileSelector(argumentMap, descendantCSSSelector); return DescendantGeneralComponent.combine(ancestorCompiled, childrenCompiled); }
@Override public TagComponent toXPath(ArgumentMap argumentMap, DescendantSelector descendantSelector) { TagComponent parentComponent = XPathComponentCompilerService.compileSelector(argumentMap, descendantSelector.getAncestorSelector()); TagComponent childComponent = XPathComponentCompilerService.compileSelector(argumentMap, descendantSelector.getSimpleSelector()); return DescendantDirectComponent.combine(parentComponent, childComponent); }
/** * {@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); }
@Override public TagComponent toXPath(ArgumentMap argumentMap, DescendantSelector descendantSelector) { Selector ancestorCSSSelector = descendantSelector.getAncestorSelector(); TagComponent ancestorCompiled = XPathComponentCompilerService.compileSelector(argumentMap, ancestorCSSSelector); SimpleSelector descendantCSSSelector = descendantSelector.getSimpleSelector(); TagComponent childrenCompiled = XPathComponentCompilerService.compileSelector(argumentMap, descendantCSSSelector); return DescendantGeneralComponent.combine(ancestorCompiled, childrenCompiled); }
/** * E F * * @author acdcjunior * @since 0.10.0 */ CssDescendantSelector translateDescendant(ArgumentMap argumentMap, DescendantSelector sacDescendantSelector) { Selector ancestorCSSSelector = sacDescendantSelector.getAncestorSelector(); CssSelector ancestorSelector = cssSelectorTranslator.translate(argumentMap, ancestorCSSSelector); SimpleSelector descendantCSSSelector = sacDescendantSelector.getSimpleSelector(); CssSelector descendantSelector = cssSelectorTranslator.translate(argumentMap, descendantCSSSelector); return new CssDescendantSelector(ancestorSelector, descendantSelector); }
/** * E F * * @author acdcjunior * @since 0.10.0 */ CssDescendantSelector translateDescendant(ArgumentMap argumentMap, DescendantSelector sacDescendantSelector) { Selector ancestorCSSSelector = sacDescendantSelector.getAncestorSelector(); CssSelector ancestorSelector = cssSelectorTranslator.translate(argumentMap, ancestorCSSSelector); SimpleSelector descendantCSSSelector = sacDescendantSelector.getSimpleSelector(); CssSelector descendantSelector = cssSelectorTranslator.translate(argumentMap, descendantCSSSelector); return new CssDescendantSelector(ancestorSelector, descendantSelector); }
@Override public boolean is(WebDriver driver, WebElement element, ArgumentMap argumentMap, DescendantSelector descendantSelector) { if (CssSelectorMatcherService.elementMatchesSelector(driver, element, argumentMap, descendantSelector.getSimpleSelector())) { WebElement ancestor = SelectorUtils.parent(element); while (ancestor != null) { if (CssSelectorMatcherService.elementMatchesSelector(driver, ancestor, argumentMap, descendantSelector.getAncestorSelector())) { return true; } ancestor = SelectorUtils.parent(ancestor); } } return false; }
@Override public boolean is(WebDriver driver, WebElement element, ArgumentMap argumentMap, DescendantSelector descendantSelector) { if (CssSelectorMatcherService.elementMatchesSelector(driver, element, argumentMap, descendantSelector.getSimpleSelector())) { WebElement ancestor = SelectorUtils.parent(element); while (ancestor != null) { if (CssSelectorMatcherService.elementMatchesSelector(driver, ancestor, argumentMap, descendantSelector.getAncestorSelector())) { return true; } ancestor = SelectorUtils.parent(ancestor); } } return false; }