使用XPATH识别背景颜色rgb上的对象

时间:2014-06-26 08:33:36

标签: html css xpath

我的桌子里面有几个div,除了背景颜色外,其中几个div在各方面都是相同的!如果我想根据其背景颜色选择div,我该怎么办?对象HTML看起来像这样: -

<div class="fc-event fc-event-hori fc-event-draggable fc-event-start fc-event-end ui-draggable" style="position: absolute; left: 3px; background-color: rgb(255, 92, 51); border-color: rgb(255, 92, 51); width: 160px; top: 469px; -moz-user-select: none;" unselectable="on">
    <div class="fc-event-inner">
        <span class="fc-event-title">My Event</span>
    </div>
    <div class="ui-resizable-handle ui-resizable-e"/>
</div>

其他看起来相同,但rgb不同。

如下的基本XPATH直接针对它: -

.//*[@id='calendar']/div/div/div/div[5]/div[1]

我可以将其修改为以下内容以选择包含测试的所有内容&#34;我的活动&#34;

.//*[@id='calendar']/div/div/div/div/div/*[text()='My Event']/..

但是,当我尝试选择具有某种风格设置的设置时,它不起作用,任何建议都表示欢迎,我猜测我的风格部分错了...

.//*[@id='calendar']/div/div/div/div[@style="background-color: rgb(255, 92, 51)"]

我甚至尝试过将它拉回来并尝试用正确的样式突出显示任何内容(因为页面上没有其他内容具有相同的背景颜色,但以下但仍然没有骰子......

.//*[@style="background-color: rgb(255, 92, 51)"]

3 个答案:

答案 0 :(得分:4)

您可以使用contains()功能部分匹配style属性值,例如:

//div[contains(@style,'background-color: rgb(255, 92, 51)')]

答案 1 :(得分:2)

希望为了拯救别人一些白发,逗号之后的空间很重要!当我尝试rgb(255,92,51)时找不到div,但rgb(255, 92, 51)确实找到了div。

  

/ div [contains(@ style,'color:rgb(255,92,51)')]

没找到div。

  

/ div [contains(@ style,'color:rgb(255,92,51)')]

确实找到了div。

答案 2 :(得分:0)

我知道这篇文章已经过时了,但是,如果您希望浏览器之间具有兼容性,则IE11(也许还有更早的版本?)不要在逗号后使用空格。