私はこの上の任意のドキュメントを見つけること、および(投機的)することはできませんが、試してみました:
//option[@selected=true]
//option[@selected="selected"]
//option[@selected]
が、これらの作品のどれも。彼らは単にどんな要素にもマッチしません。
は
私はこの上の任意のドキュメントを見つけること、および(投機的)することはできませんが、試してみました:
//option[@selected=true]
//option[@selected="selected"]
//option[@selected]
が、これらの作品のどれも。彼らは単にどんな要素にもマッチしません。
は
短い答え:それはできません。
長い答え:XPathはHTML属性を見ることができますが、DOMプロパティを見ることはできません。 <select>
で<option>
要素を選択すると、true
にselected
財産<option>
のを変更し、またその親<select>
要素のvalue
プロパティを変更しますが、それはどちらかの属性に影響を与えませんので、XPathのには見えません。
selected
属性セットを持つ<option>
要素を見つけるには、ページ作成者が最初に選択されたオプションを決定する方法がよくありますが、//option[@selected]
を使用できます。しかし、このはではありません。は現在が選択されています。<option>
です。ユーザーが選択した変更はXPathには見えません。ページ作成者がのいずれかの要素にselected
属性を指定しなかった可能性があるため、の最初の選択肢がであることを保証するものではありません。ブラウザがデフォルトで最初のオプションを選択するか、 selected
プロパティを介して初期オプション。 //option[@selected]
ようなセレクタは、ページをロードした後、ユーザによる選択の変化を検出することができること
複数はotheranswershereclaiming単に完全に間違っています。
もちろん、XPathセレクタの代わりにCSSセレクタを使用できる場合は、option:checked
を使用します。
私は//option[@selected='true']
$x
機能を使用して、Python用のSeleniumで
find_elements_by_xpath
方法を使用して。これを試してみました)
すなわちdriver.findElements(By.xpath("//option[@selected='true']")).getText();
問題は"
(二重引用符)になる可能性があります。
//select/option[@selected='selected']
- 選択したオプションと一致しますが、これを正常に使用しています。
//select/option[@selected='selected' and @value='specific value']
- 選択したオプションに「特定の値」がある場合にのみ一致します。これも使用しています。
まだ問題が解決しない場合は、まったく別の問題になる可能性があります。オプションノードがない可能性があります。私はこれが役立つことを願っています
私は@マークの答えとアカウントの知識を使うことができると思います。ちょうど属性希望したノード見つけてみましょう:この答えが間違っている主な方法のほかに
tree.xpath('//select/option[@selected]/text()')[0].strip()
を、違和感の第二ビットは変更される可能性があり、二重引用符の代わりに単一で私のXPathの文字列表現を引用提案がありますその行動。 XPathの最も古いバージョンであっても、これは誤りです。 [オリジナル仕様](http://www.w3.org/TR/xpath/#section-Introduction)、* "式の中で、リテラル文字列は一重引用符または二重引用符で区切られています" *。 –
この答えが間違っている主な方法は何ですか? – 23inhouse
全く動作しません。 '// select/option [@ selected = 'selected']'は現在選択されているオプションと一致しません。 'selected'属性が文字列' 'selected" 'に設定されているオプションと一致します。これは、最初に選択されたオプションであることも保証されていません( 'selected'属性の単なる*存在は、最初に選択された' option'をマークします;それが何であるかは関係ありません)。 (どのオプションが*現在*選択されているかは、 'selected'属性の存在または値とは完全に独立しています)。 –