我有多个具有相同资源id的元素(它们不同时出现在屏幕上),所以我需要能够根据它们包含的文本来选择它们。但是,文本的一部分偶尔会更改,并且对于每个元素,只有一小串文本会不断显示。那么,当我需要的时候,如何选择每个元素呢?我试过:
不幸的是,它返回一个bool值,因此我无法“单击”它:
get_code = WebDriverWait(self.driver, 3).until(
EC.text_to_be_present_in_element((By.ID, "android:id/big_text"), 'validation'))
element.click()
这通常适用于我,但我需要包含contains(text(),'validation'),但我无法找到方法来执行此操作:
^{pr2}$也许这样的事情会管用?在
element = WebDriverWait(self.driver, 3).until(
EC.presence_of_element_located((By.XPATH, '//*[@id="android:id/big_text" and contains(text(), "validation"]')))
element.click()
但我不知道如何格式化。还有其他建议吗。谢谢!在
试试下面这个。它应该有用。appium客户机xpath中text()的实现与针对浏览器的selenium差别不大。在
或者
^{pr2}$上面两个xpath的不同之处只是引用的类型。在
就目前而言,效果足够好…可以选择更好的方案。在
上一次尝试中的括号错误,请使用:
相关问题 更多 >
编程相关推荐