获得伪元素的这两个选项之间的区别是什么,或获得这些元素的方式有什么区别,因为一行包含document.queryselector,另一行包含元素数组
JavascriptExecutor js = (JavascriptExecutor)driver;
String script = "return window.getComputedStyle(document.querySelector('#validationError'),':before').getPropertyValue('content')";
String content = (String) js.executeScript(script);
和
JavascriptExecutor js = (JavascriptExecutor) driver;
String iconUrl = (String) js.executeScript("return window.getComputedStyle(arguments[0],':before').getPropertyValue('content');", icon);
在第一条语句中,您正在Web元素上直接执行Javascript以获取其:before
值。在第二条语句中,您将使用WebDriver查找web元素,然后将该元素作为参数传递给JavaScript,以在其上执行脚本。
如果icon
和#validationError
返回相同的元素,则脚本在功能上相同。第一个使用JS查找元素,第二个使用Selenium查找元素,随后使用参数。