Appium常用操作之页面中的滑动点击

经常有些滑动场景,比如:滑动列表找到指定元素,可能该元素并没有在当前页面显示,需要进行滑动至指定位置该元素才显示,那么怎么针对该场景去定位元素操作元素呢?

问题解决思路:每次滑动一段距离,利用while循环判断该页面是否包含某个元素文本信息,如果有的话就获取该元素信息,没有的话继续滑动

#获取当前页面所有的布局、元素信息
pagesource=driver.page_source
#new_pagesource存放滑动之后的pagesource信息
new_pagesource=None
#例如在页面中找“吃个鱼丸”
while "吃个鱼丸"not in new_pagesource:
    pagesource=driver.page_source
    #向下滚动页面,引用封装好的swipeDown()方法,见https://www.cnblogs.com/123blog/p/12622826.html
    swipeDown(1000)
    new_pagesource=driver.page_source
#找到吃个鱼丸进行点击
if pagesource.find("吃个鱼丸")!=-1:
    driver.find_element_by_android_uiautomator("new UiSelector().text("吃个鱼丸")").click()

  用上诉的思路能够实现我们的需求,但是代码相对来说比较复杂,我们还有一种解决思路能够提供更快捷的方式。

问题解决思路:利用UiAutomator中的UiScrollable滚动类来讲元素滚动到可见区域再来操作;

UiScrollable可以生成一个滚动动作的对象,其最大的作用就是可以实现滚动的查找某个元素,具体用法见官方文档:https://developer.android.google.cn/training/testing/ui-automator#ui-automator-apis

element=driver.find_element_by_android_uiautomator('new UiScrollable(new Uiselector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textMatches(\"吃个鱼丸\").instance(0))')
#再对元素进行操作-点击
element.click()

  

 

posted @ 2020-04-02 21:07  吃个鱼丸  阅读(940)  评论(0编辑  收藏  举报