@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String wantedLang = pseudoClassSelector.getPseudoClassContent(); return wantedLang.equals(SelectorUtils.lang(element)); }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String wantedLang = pseudoClassSelector.getPseudoClassContent(); return new ConditionSimpleComponent("[ancestor-or-self::*[@lang][1]/@lang = '" + wantedLang + "']"); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String gtIndex = pseudoClassSelector.getPseudoClassContent(); if (!gtIndex.matches("[+-]?\\d+")) { throw new RuntimeException("The :gt() pseudo-class requires an integer but got: " + gtIndex); } if (gtIndex.charAt(0) == '+') { gtIndex = gtIndex.substring(1); } int index = Integer.parseInt(gtIndex); return GtPseudoClass.isGt(driver, element, pseudoClassSelector, index); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String textToContain = pseudoClassSelector.getPseudoClassContent(); textToContain = SelectorUtils.unescapeString(textToContain); return element.getText().contains(textToContain); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String ltIndex = pseudoClassSelector.getPseudoClassContent(); if (!ltIndex.matches("[+-]?\\d+")) { throw new RuntimeException("The :lt() pseudo-class requires an integer but got: " + ltIndex); } if (ltIndex.charAt(0) == '+') { ltIndex = ltIndex.substring(1); } int index = Integer.parseInt(ltIndex); return LtPseudoClass.isLt(driver, element, pseudoClassSelector, index); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String wantedLang = pseudoClassSelector.getPseudoClassContent(); return wantedLang.equals(SelectorUtils.lang(element)); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String textToContain = pseudoClassSelector.getPseudoClassContent(); textToContain = SelectorUtils.unescapeString(textToContain); return element.getText().contains(textToContain); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String notSelector = pseudoClassSelector.getPseudoClassContent(); return !CssSelectorMatcherService.elementMatchesStringSelector(driver, element, notSelector); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String eqIndex = pseudoClassSelector.getPseudoClassContent(); if (!eqIndex.matches("[+-]?\\d+")) { throw new RuntimeException("The :eq() pseudo-class requires an integer but got: " + eqIndex); } if (eqIndex.charAt(0) == '+') { eqIndex = eqIndex.substring(1); } int index = Integer.parseInt(eqIndex); return EqPseudoClass.isEq(driver, element, pseudoClassSelector, index); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String notSelector = pseudoClassSelector.getPseudoClassContent(); return !CssSelectorMatcherService.elementMatchesStringSelector(driver, element, notSelector); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String gtIndex = pseudoClassSelector.getPseudoClassContent(); if (!gtIndex.matches("[+-]?\\d+")) { throw new RuntimeException("The :gt() pseudo-class requires an integer but got: " + gtIndex); } if (gtIndex.charAt(0) == '+') { gtIndex = gtIndex.substring(1); } int index = Integer.parseInt(gtIndex); return GtPseudoClass.isGt(driver, element, pseudoClassSelector, index); }
@Override public boolean isPseudoClass(WebDriver driver, WebElement element, PseudoClassSelector pseudoClassSelector) { String hasSelector = pseudoClassSelector.getPseudoClassContent(); TagComponentList compiledSelector = XPathComponentCompilerService.compileSelectorList(hasSelector); List<WebElement> elements = compiledSelector.findWebElements(driver); return !elements.isEmpty(); }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String notSelector = pseudoClassSelector.getPseudoClassContent(); String insideHasXPath = XPathComponentCompilerService.compileSelectorList(notSelector).toXPath(); insideHasXPath = insideHasXPath.substring(1, insideHasXPath.length()-1); return new ConditionSimpleComponent("[" + insideHasXPath + "]"); }
String getOriginalPseudoClassSelector() { String pseudoClassBracesContent = getPseudoClassContent(); String rawUsupportedSelector = ":"+getPseudoClass(); if (pseudoClassBracesContent != null) { rawUsupportedSelector = ":"+getPseudoClass()+"("+pseudoClassBracesContent+")"; } return rawUsupportedSelector; }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String notSelector = pseudoClassSelector.getPseudoClassContent(); String insideHasXPath = XPathComponentCompilerService.compileSelectorList(notSelector).toXPath(); insideHasXPath = insideHasXPath.substring(1, insideHasXPath.length()-1); return new ConditionSimpleComponent("[" + insideHasXPath + "]"); }
String getOriginalPseudoClassSelector() { String pseudoClassBracesContent = getPseudoClassContent(); String rawUsupportedSelector = ":"+getPseudoClass(); if (pseudoClassBracesContent != null) { rawUsupportedSelector = ":"+getPseudoClass()+"("+pseudoClassBracesContent+")"; } return rawUsupportedSelector; }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String notSelector = pseudoClassSelector.getPseudoClassContent(); String insideNotXPath = XPathComponentCompilerService.compileSelectorList(notSelector).toXPathCondition(); return new ConditionSimpleComponent("[not(" + insideNotXPath + ")]"); }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String notSelector = pseudoClassSelector.getPseudoClassContent(); String insideNotXPath = XPathComponentCompilerService.compileSelectorList(notSelector).toXPathCondition(); return new ConditionSimpleComponent("[not(" + insideNotXPath + ")]"); }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String textToContain = pseudoClassSelector.getPseudoClassContent(); textToContain = SelectorUtils.unescapeString(textToContain); String wantedTextToContain = SelectorUtils.intoEscapedXPathString(textToContain); return new ConditionSimpleComponent("[contains(string(.), " + wantedTextToContain + ")]"); }
@Override public ConditionSimpleComponent pseudoClassToXPath(PseudoClassSelector pseudoClassSelector) { String textToContain = pseudoClassSelector.getPseudoClassContent(); textToContain = SelectorUtils.unescapeString(textToContain); String wantedTextToContain = SelectorUtils.intoEscapedXPathString(textToContain); return new ConditionSimpleComponent("[contains(string(.), " + wantedTextToContain + ")]"); }