Java 如何验证selenium中是否存在::after伪元素
我使用的是一个预定义字段,所以您只能输入特定的值,如果您输入任何其他值(未映射到数据库中),则会抛出错误。 现在,我想检查哪些值(来自excel工作表),这个字段会抛出错误,但我很难做到这一点,因为DOM中唯一更改无效值的是Java 如何验证selenium中是否存在::after伪元素,java,selenium,selenium-webdriver,Java,Selenium,Selenium Webdriver,我使用的是一个预定义字段,所以您只能输入特定的值,如果您输入任何其他值(未映射到数据库中),则会抛出错误。 现在,我想检查哪些值(来自excel工作表),这个字段会抛出错误,但我很难做到这一点,因为DOM中唯一更改无效值的是::before。如果无效,::before将出现。 例如: ::之前 当我遇到这个问题时,我看不到任何通过诸如XPATH、CSS等WebDriver定位器策略来实现这一点的方法。我们只能通过Javascript来使用它。大概是这样的: public String error
::before
。如果无效,::before
将出现。
例如:
::之前
当我遇到这个问题时,我看不到任何通过诸如XPATH、CSS等WebDriver定位器策略来实现这一点的方法。我们只能通过Javascript来使用它。大概是这样的:
public String errorCheck() {
String script = "return window.getComputedStyle(document.querySelector('label[for=\\'Broom\\']'),':before').getPropertyValue('content')";
JavascriptExecutor js = (JavascriptExecutor)driver;
String content = (String) js.executeScript(script);
return content;
}
因此,您可以验证它是否为有效值返回null。如果你在这方面做更多的研究,你会发现你也可以做更多的验证,例如颜色等。
这更多的是从参考的角度来看。这里给出了类似的答案:
public String errorCheck() {
String script = "return window.getComputedStyle(document.querySelector('label[for=\\'Broom\\']'),':before').getPropertyValue('content')";
JavascriptExecutor js = (JavascriptExecutor)driver;
String content = (String) js.executeScript(script);
return content;
}