2011-10-10 203 views
1

有人可以帮我把这段代码工作吗?我有几个选择字段,我只想要最后一个在我的变量。xPath最后选择元素

variable = browser.elements_by_xpath('//div[@class="nested-field"]//select[last()] 

谢谢!

+0

提供样品输入。 –

回答

0

是完全匹配的类属性吗? 如果标记是这样

<div class="nested-field other"> 
... 

那么你就会被确切类必须匹配或使用XPath包含的内容。

3

这是一个常见问题解答:XPath中的[]运算符比//伪运算符具有更高的优先级(优先级)。这就是为什么必须使用括号来更改默认的运营商优先级。至少有几个类似的问题有很好的解释 - 搜索它们并阅读和理解。

而不是

//div[@class="nested-field"]//select[last()] 

使用

(//div[@class="nested-field"]//select)[last()] 
+0

我不明白为什么// div [@ class =“nested-field”] // select会匹配任何内容。 – pguardiario

+0

@pguardiario:不是“匹配”而是“选择”。 ''div [@ class =“nested-field”] // select'选择任何'select'元素,它是任何'div'元素的后代,其'class'属性的值为''“嵌套字段” '。 –

+0

我想我的问题是为什么/ /选择而不是/选择? – pguardiario