23

我是 xpath 的新手,试图使用 xpath 获取“值”的值:

<input type="submit" value="  Search  " class="long searchButton" style="width:190px !important;">

虽然很容易通过以下方式找到元素"type="submit"

browser.find_elements_by_xpath("//*[@type='submit']")

我一直无法弄清楚如何获得我需要的值,例如:

browser.find_elements_by_xpath("//*[@type='submit']/@value")

有点出乎意料地给出了一个错误:

expression "//*[@type=\'submit\']/@value" is: [object Attr]. It should be an element

任何想法如何解决这个问题?

编辑: xpath 是正确的,但它“返回”一个 obj 属性,因为它不是一个元素,所以它是不允许的。我找不到像 get_attr_by_xpath() 这样的方法或类似的方法。

4

2 回答 2

39

我最终用作get_attribute("value")

for i in browser.find_elements_by_xpath("//*[@type='submit']"):
    print i.get_attribute("value")
于 2012-10-02T11:37:15.027 回答
2

会是这样

browser.find_elements_by_xpath("//*[@type='submit']/@value").text

更新:

使用您使用的功能,我们只能提取元素而不是其属性。要获取它的属性,表达式应该是这样的

browser.find_elements_by_xpath("//*[@type='submit']").get_attribute("value")

参考: http ://selenium-python.readthedocs.org/en/latest/api.html#selenium.webdriver.remote.webelement.WebElement.find_elements_by_tag_name

于 2012-09-25T08:41:45.933 回答