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 に答える