同じリソースIDを持つ複数の要素があります(これらはすべて同時に画面に表示されません)。そのため、それらの要素に含まれるテキストに基づいて選択する必要があります。ただし、テキストの一部が時折変更され、各要素について、小さな文字列のみが常に表示されます。では、必要なときに各要素を選択するにはどうすればよいですか?私が試した:特定のテキストを含むweb要素を選択
は残念ながら、それはブール値を返し、私はそれを「クリック」することはできません。
get_code = WebDriverWait(self.driver, 3).until(
EC.text_to_be_present_in_element((By.ID, "android:id/big_text"), 'validation'))
element.click()
これは通常、私の作品が、私は(テキストを()が含まれて含める必要があり、 「検証」)、私はこれを行う方法を見つけることができませんでした:
element = WebDriverWait(self.driver, 3).until(
EC.element_to_be_clickable((By.ID, "android:id/big_text")))
element.click()
たぶん、このような何かが働くだろうか?
element = WebDriverWait(self.driver, 3).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="android:id/big_text" and contains(text(), "validation"]')))
element.click()
しかし、私はそれをどのようにフォーマットするのかは分かりません。その他の提案。ありがとう!最後の試みで
EC.presence_of_element_located(By.XPATH、「// * [ID @ = "アンドロイド:ID/big_text" と含まれています(テキスト(3)与えられた2つの引数をとります。 – cjg123
これは機能しません:element = WebDriverWait(self.driver、3).until( EC.element_to_be_clickable (By.XPATH、 "// * [contains(text()、 'validation')]"))) eleme nt.click()要素はクリックされず、エラーはスローされません。 – cjg123