获取Selenium中选定元素的所有CSS属性的值
假设我使用以下命令通过XPath找到了一个元素:
WebElement we = driver.findElement(By.xpath("some XPath"));
我知道我可以通过获取特定CSS属性we.getCssValue("some property")
的值,但是可以获取所有属性的值而不必明确提及其名称吗?
回答:
不幸
原生Selenium API无法做到这一点。
但是,使用Javascript您可以:
您可以使用Seleniums的JavascriptExecutor.executeScript
功能使用一些javascript支持。
必要的js代码可在找到(由@Mahsum Akbas提出)
现在,这里是Java / Selenium代码,它将以“ css-attribute01:value01; css-
attribute02:value02;”的形式返回给您一个字符串。
请注意,这将返回该元素上的 css属性。
WebElement we = driver.findElement(By.tagName("div"));JavascriptExecutor executor = (JavascriptExecutor)driver;
String script = "var s = '';" +
"var o = getComputedStyle(arguments[0]);" +
"for(var i = 0; i < o.length; i++){" +
"s+=o[i] + ':' + o.getPropertyValue(o[i])+';';}" +
"return s;";
System.out.println(executor.executeScript(script, we));
您可以根据需要更改脚本。例如,您可以返回一个仅包含所有值而没有属性的字符串。随时进行更改和尝试。
更新资料
如果只对元素的内联样式感兴趣,则可以使用@JeffC在注释中指出的“本机” Selenium:
driver.findElement(By.tagName("div")).getAttribute("style")
但!:
这只会为您提供“内联样式”,而不是所有应用于元素的css样式。如果您同时运行两个版本并打印结果,您将看到巨大的不同。
以上是 获取Selenium中选定元素的所有CSS属性的值 的全部内容, 来源链接: utcz.com/qa/430625.html