类的xpath测试元素

类的xpath测试元素,xpath,Xpath,我想知道xpath是否有办法测试类的元素。我目前有ID,我只想能够测试以确保JS添加了一个类 我正在测试的元素,看看id=foo是否包含class=red <span id="foo" class="red">test</span> 我也尝试过,但没有成功 getXpathCount("//span[@id='foo'].span[contains(@class,'red')]").equals(1); 要使用的xpath是 //a[@id='foo' and @cl

我想知道xpath是否有办法测试类的元素。我目前有ID,我只想能够测试以确保JS添加了一个类

我正在测试的元素,看看id=foo是否包含class=red

<span id="foo" class="red">test</span>
我也尝试过,但没有成功

getXpathCount("//span[@id='foo'].span[contains(@class,'red')]").equals(1);

要使用的xpath是

//a[@id='foo' and @class='red']

所以不需要使用。要选择当前元素?@George:XPath表达式的计算从上下文节点(“当前元素”)开始,因此无需显式地将
/
放在表达式的前面。那么,如果一个元素有多个类,而我只需要其中一个类为红色,该怎么办(顺便说一句,我正在使用lxml,不确定实现是否重要)您的尝试
//span[@id='foo'].span[contains(@class,'red')]
非常接近…
//span[@id='foo'][contains(@class,'red')]
会起作用(但也会将span与
class=“credit”
匹配)@LarsH为什么它会和班级学分匹配?我有点迷路了。
包含(@class,'red'))
表示
属性的值包含字符串
红色
。因此,当类将任何带有
红色
的字符串作为子字符串时,如
弗雷德
重做
红色
恐惧
,等等。如果要检测
的值属性是红色的,然后使用
@class='red'
(正如加比所写的)。啊,是的,我没有把两个和两个放在一起,信用卡里面有红色。谢谢你的解释。
//a[@id='foo' and @class='red']