我的桌子里面有几个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)"]
答案 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(也许还有更早的版本?)不要在逗号后使用空格。