如下图: 内容首页为可滚动视图,默认元素定位获取的到的是当前显示页面节点的内容,如果要获取的内容不在当前页面上,则需要向下滑动页面视图才能找到对应元素。但是你不知道要滑动多少次才能定位到这个元素。
在 Android UiAutomator 元素的定位中,提供scrollIntoView的方法来定位,具体使用如下
"""
视图滚动
"""
from appium import webdriver
caps = {}
caps["platformName"] = "Android"
caps["platformVersion"] = "5" # 设备的版本号 输入自己的设备版本号
caps["deviceName"] = "127.0.0.1:21503" # 设备的序列号 输入自己的设备序列号
caps["automationName"] = "UiAutomator2"
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps) # 连接appium 远程服务
# 全局等待时间30秒 如果元素没有立即显示出来,会重试
driver.implicitly_wait(30)
# 启动应用 pacakage activity
driver.start_activity('org.cnodejs.android.md','.ui.activity.LaunchActivity')
# 找到我还是从前那个少年元素
driver.find_element_by_android_uiautomator(
'new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().text("我还是从前那个少年").instance(0));')
参考
http://appium.io/docs/en/writing-running-appium/android/uiautomator-uiselector/index.html