手机自动化测试:5.模拟相关操作:swipe,scroll,drag_and_dropki

网上教程很多。以下仅参考。

1.swipe(坐标到坐标)

复制代码
time.sleep(3)
print("滑动开始")

driver.swipe(500,1500,500,500)
print("滑动结束")

2. scroll(元素到元素)

先定位元素组:

复制代码
//android.support.v7.widget.RecyclerView/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup

以下代码,获取元素列表成功。我们要利用这些个元素进行滚动的。

以下代码,滚动成功。注意的是:我使用的是-2和1,因为我用-1和0时老是滚动失败,原因以后再找吧。

复制代码
# ########################## 定位数据区域,返回元素列表每次定位的有点多,所以使用字典去重 #########################################################
try:
    # 使用XPath定位带有index属性的FrameLayout元素
    frame_layout_elements = WebDriverWait(driver, timeout, poll_frequency).until(
        EC.presence_of_all_elements_located(
            (By.XPATH, "//android.support.v7.widget.RecyclerView/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup"))
    )
    print("元素列表长度:", len(frame_layout_elements))

    for i in range(len(frame_layout_elements)):

        print("元素列表:",frame_layout_elements[i])

    print("准备元素滑动")
    time.sleep(5)
    driver.scroll(frame_layout_elements[-2], frame_layout_elements[1])


    # 根据需要进一步操作找到的唯一FrameLayout元素
except Exception as e:
    print(f"无法定位到FrameLayout元素: {e}")

3.drag_and_drop(元素,无素)

直接修改以上代码。以下测试通过。

复制代码
# ########################## 定位数据区域,返回元素列表每次定位的有点多,所以使用字典去重 #########################################################
try:
    # 使用XPath定位带有index属性的FrameLayout元素
    frame_layout_elements = WebDriverWait(driver, timeout, poll_frequency).until(
        EC.presence_of_all_elements_located(
            (By.XPATH, "//android.support.v7.widget.RecyclerView/android.widget.FrameLayout/android.view.ViewGroup/android.view.ViewGroup"))
    )
    print("元素列表长度:", len(frame_layout_elements))

    for i in range(len(frame_layout_elements)):

        print("元素列表:",frame_layout_elements[i])

    print("准备元素滑动")
    time.sleep(5)
    driver.drag_and_drop(frame_layout_elements[-2], frame_layout_elements[1])


    # 根据需要进一步操作找到的唯一FrameLayout元素
except Exception as e:
    print(f"无法定位到FrameLayout元素: {e}")

下一节,对每一个元素块内的文字进行提取

相关推荐
晴殇i几秒前
抛弃 JavaScript 立即执行函数,这个方案更简洁更优雅
前端·javascript
码是生活1 分钟前
鸿蒙开发排坑:解决 resourceManager.getRawFileContent() 获取文件内容为空问题
前端·harmonyos
zoahxmy09292 分钟前
Vue3 视频播放与截图功能实现
javascript·vue.js
JavaPub-rodert3 分钟前
一道go面试题
开发语言·后端·golang
婷婷婷婷4 分钟前
v-copyText 自定义指令 —— 复制文本内容
前端
6<76 分钟前
【go】静态类型与动态类型
开发语言·后端·golang
waylon111136 分钟前
【HOC】高阶组件在Vue老项目中的实战应用 - 模块任意排序
前端·vue.js·面试
阳阳羊7 分钟前
Mpx 动画
前端
编程社区管理员8 分钟前
「2025最新版React+Ant Design+Router+TailwindCss全栈攻略:从零到实战,打造高颜值企业级应用
前端·react.js·前端框架
DJA_CR8 分钟前
解决在 TSX 中使用 `RouterView` + `KeepAlive` 不生效问题
前端·vue.js