您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

获取Selenium中选定元素的所有CSS属性的值

获取Selenium中选定元素的所有CSS属性的值

原生Selenium API无法做到这一点。

您可以使用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样式。如果您同时运行两个版本并打印结果,您将看到巨大的不同。

CSS 2022/1/1 18:22:19 有306人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶