如果另一个元素包含文本,如何单击按钮
how to click a button if another element contains a text
我正在测试一个应用程序,我很难点击另一个元素包含文本的按钮,如下所示。
我想点击上面有“即将到来”字样的“详细信息”按钮。
我试过了,但是 none 成功了。
第一
for booking_card in context.driver.find_element_by_xpath("//*(@class='android.view.ViewGroup')"):
if booking_card.text == "UPCOMING":
context.driver.find_element_by_xpath("//*[contains(@text, 'DETAILS')]").click()
第二
context.driver.find_element_by_xpath("//*[contains(@text, 'UPCOMING')]//*[@text='DETAILS']").click()
第三
我尝试使用 parent, sibling and ancestor 方法找到详细信息按钮,但仍然失败。
//*[@class='android.view.ViewGroup']//*[contains(@text, 'UPCOMING')]/following-sibling::*[contains(@text, 'DETAILS')]
这是元素的层次结构:
非常感谢任何帮助,谢谢。
如果还有什么我需要解释的,请告诉我。
我找到了答案,所以方法是使用parent,following-sibling方法。
我所做的只是确保元素的层次结构是正确的,这样我才能找到我要找的东西。
这是我做的代码,很简单。
isPresent(context, MobileBy.XPATH, "//*[@text='UPCOMING']/parent::*[@class='android.view.ViewGroup']/parent::*[@class='android.view.ViewGroup']/following-sibling::*[@class='android.view.ViewGroup']//*[@text='DETAILS']").click()
所以我是这样做的,首先查看 'UPCOMING' 单词,然后我需要找到父元素,然后单击“详细信息”按钮。
我正在测试一个应用程序,我很难点击另一个元素包含文本的按钮,如下所示。
我想点击上面有“即将到来”字样的“详细信息”按钮。
我试过了,但是 none 成功了。
第一
for booking_card in context.driver.find_element_by_xpath("//*(@class='android.view.ViewGroup')"):
if booking_card.text == "UPCOMING":
context.driver.find_element_by_xpath("//*[contains(@text, 'DETAILS')]").click()
第二
context.driver.find_element_by_xpath("//*[contains(@text, 'UPCOMING')]//*[@text='DETAILS']").click()
第三 我尝试使用 parent, sibling and ancestor 方法找到详细信息按钮,但仍然失败。
//*[@class='android.view.ViewGroup']//*[contains(@text, 'UPCOMING')]/following-sibling::*[contains(@text, 'DETAILS')]
这是元素的层次结构:
非常感谢任何帮助,谢谢。 如果还有什么我需要解释的,请告诉我。
我找到了答案,所以方法是使用parent,following-sibling方法。 我所做的只是确保元素的层次结构是正确的,这样我才能找到我要找的东西。
这是我做的代码,很简单。
isPresent(context, MobileBy.XPATH, "//*[@text='UPCOMING']/parent::*[@class='android.view.ViewGroup']/parent::*[@class='android.view.ViewGroup']/following-sibling::*[@class='android.view.ViewGroup']//*[@text='DETAILS']").click()
所以我是这样做的,首先查看 'UPCOMING' 单词,然后我需要找到父元素,然后单击“详细信息”按钮。