如何使用webdriver(python)从css(非内联)按样式选择元素

时间:2014-06-17 10:00:31

标签: python css selenium webdriver css-selectors

我希望使用python-webdriver根据它的背景突出显示颜色来选择元素。通常,这一点html:

<div class="line-highlight" style="background:#FD71B5;">

我会选择它执行以下操作:

.line-highlight[style*='background:#FD71B5']

但是,在这种情况下,我有不同的内联样式:

<div class="line-highlight" style=top:130px;height:28px;left:506px;width:434px;">

但高亮颜色(相同)是在外部CSS中设置的,因此上面的选择器似乎不起作用。

如果该样式不是内联的,那么webdriver是否可以按样式选择?

谢谢, 达伦

2 个答案:

答案 0 :(得分:1)

因为您要查找的css不是HTML标记的一部分,所以您不能像通常那样选择元素。

而是尝试通过类名“.line-highlight”进行选择,然后遍历生成的元素对象,并为每个元素使用以下内容获取css background属性值:

value_of_css_property("background") 

(或任何css属性)。一旦元素与背景相匹配,你就会想要从循环和tada中找到你想要的元素。

请注意,如果您正在使用Java:

getCssValue(property-name)

答案 1 :(得分:0)

此链接http://www.w3.org/2002/07/26-dom-article.html说明了风格。

访问与文档相关的样式

文档中的每个节点都与风格效果相关联,如颜色,位置和 边界。这些风格效果并不总是文档的一部分,可能会在文档中定义 一个名为样式表的单独部分。

因为Selenium只使用DOM,它无法找到你想要的元素。