- 先指定上滑屏幕 方法swipe_up()
- 下滑屏幕方法swipe_down()
def swipe_up(self):
w, h = self.d.window_size()
self.d.swipe(w // 2, h // 2, w // 2, h * 1 // 5)
self.sleep(1)
def swipe_down(self):
w, h = self.d.window_size()
self.d.swipe(w // 2, h // 2, w // 2, h * 4 // 5)
self.sleep(1)
- 整体思路如下:先获取界面元素属性
- 首先定义当前页面元素为page,如果为text在page里面表示找到文本,如果不在page则可以向下滑动,文本不存在就继续下滑,如果滑动前后俩次page元素相同表示已经到达底部/顶部
- 此处先下滑,再上滑,是因为有些app端选项列表会自动定位到上一次已经选择的元素(因此可能位于中间段位置,我们需要上下都查找相关元素)
d = u2.connect()
- 如果上下都未找到,则返回False
def find_text(self, text, swipe=True):
"""
查找页面元素
:param text:
:param swipe:
:return:
"""
log.info("查找页面元素【{}】".format(text))
page = self.d.dump_hierarchy()
if text in page:
return True
elif swipe:
while swipe:
page = self.d.dump_hierarchy()
log.info("向下滑动一次")
self.swipe_down()
newpage = self.d.dump_hierarchy()
if text in newpage:
return True
if newpage == page:
log.info("滑到顶部了,没有找到元素,继续上滑")
while swipe:
page = self.d.dump_hierarchy()
log.info("向上滑动一次")
self.swipe_up()
newpage = self.d.dump_hierarchy()
if text in newpage:
return True
if newpage == page:
log.info("滑到底了,没有找到元素")
return False
else:
return False