Appium appium 中不断循环寻找元素,知道找到为止

皮卡丘 · 2021年10月24日 · 最后由 Jacky 回复于 2021年10月26日 · 2485 次阅读

这里如何点击第一个台位没有找到订单后,让它继续点击下一个台位寻找呢,

共收到 5 条回复 时间 点赞

如果是普通程序,写个 for 循环,循环点击每个台位,直到有订单就好。 appium 有提供 findElements 方法,可以找到符合条件的所有元素。
但放在自动化测试,应该是你在前置条件就给某个指定台位生成好订单,测试时直接用这个台位就一定有订单。

因为如果前置造数据自动化里没控制,你的自动化用例就会不稳定(比如确实所有台位都没订单,那你这个用例算通过还是算不通过?)。不稳定的自动化会在后面浪费你大量时间去排查处理,所以至少在思路上就保证路径唯一,减少可变因素。

陈恒捷 回复

找到所有台位了,并循环点击每个台位。这里怎么判断点击到台位出现订单的元素就停止点击下一个台位呢

def get_store_invoicing(self):
"""获取规格商品"""
table_no = self.driver.find_elements(cpl.table_no_loc)
temp = [e.text for e in table_no]
for list in temp:
table_number_loc =('xpath','//
[(@text="{}")]'.format(list))
aa=self.wait_element_is_visible(table_number_loc,'点击每一个台位号').click_element()
self.wait_element_is_loaded(cpl.pay_state_loc,'获取订单信息').get_element()
# else:
# self.wait_element_is_visible(cpl.order_pay_loc,'点击结账').click_element()

皮卡丘 回复

可以直接找到订单后,用 break 停止循环?

先发 api 找到符合对应条件的订单,再用 ui 操作比较方便。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册