私は自分のサイトのテストをしようとしています。ユーザーのフォームに問題があります。そのトリックは、フォーム内のテキストフィールドの数がユーザーオプションによって異なります(無効なものはコード内にありますが、スタイルは< displayed: none;
>タグです)、私はすべての場所を見つけるよりも柔軟なアプローチを探しています要素を1つずつ追加し、フォームをtry/exceptブロックで埋めます。可視要素のxpathロケータが必要です
私は放火犯が唯一の必要な要素をXPathのロケータ
text_fields = driver.find_elements_by_xpath("//div[@class='form-line']/div[@class='form-inputs']/input[@type='text' and not(ancestor::div[@style='display: none;'])]")
トラブルを探している使用していますが、私はそれを使用するときに、私のセレンスクリプトは、text_fields
のリストを印刷すると、私のすべての要素を与え、たとえない場合でも< displayed: none;
>タグ
可視要素のみを取得するにはどうすればよいですか?重要な部分がある
text_fields = driver.find_elements_by_xpath(
"//div[@class='form-line']/div[@class='form-inputs']/input[@type='text' and
not(ancestor::div[contains(@style, 'display: none;')])]")
:スタイルは、文字列が含まれている場合、その
div[contains(@style, 'display: none;')]
注意、
PS私の悪い英語のため申し訳ありません^ _^
def make_an_order(ドライバ): text_fields = driver.find_elements_by_xpath( "// div [@ class = 'フォームライン']/div [@クラス= 'フォーム入力]]/input [@ type =' text 「text_fields内のフィールドのための) は: 試し: field.clear() 除く: パス は解決策を見つけました。しかし、質問はまだ興味深いです –
は、jQueryを注入し、[':visible'](http://api.jquery.com/visible-selector/)セレクタを代わりに使用していますか? – Alp