私は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()などのメソッドが見つかりません。
私は最終的にget_attribute("value")
を次のように使用しました:
for i in browser.find_elements_by_xpath("//*[@type='submit']"):
print i.get_attribute("value")
こんな感じ
browser.find_elements_by_xpath("//*[@type='submit']/@value").text
更新:
あなたが使用する関数では、属性ではなく要素のみを抽出できます。その属性を取得するには、式は次のようになります
browser.find_elements_by_xpath("//*[@type='submit']").get_attribute("value")
これが2年以上前に投稿されたことは確かに知っていますが、残されたものに少し追加したいと思います。 Seleniumには、タグの間にあるテキストまたはタグ内の実際の属性値を取得するために使用できる組み込みの単語が用意されています。
${XPATH} xpath=(//td[@title='mytitle']/../td)[2]
以下に簡単な例を示します。
${THE_NAME}= Get Text ${XPATH}