如何使用AppiumJS实现手机屏幕滑动操作?

在Appium自动化测试中,滑动手机屏幕是一项常见且重要的操作,Appium提供了多种方式来实现模拟用户的滑动屏幕动作,主要包括swipe滑动、scroll滚动和drag拖拽事件,以下是对这几种滑动方式的详细解释及实现方法:

一、Swipe滑动

1.

Swipe滑动是从页面的一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动,它适用于需要精确控制滑动起点和终点的场景。

2. 参数说明

start_x:起点X轴坐标

start_y:起点Y轴坐标

end_x:终点X轴坐标

end_y:终点Y轴坐标

duration(可选):滑动持续的时间,单位为毫秒,默认为0

3. 实现方法

from appium import webdriver
import time
创建Desired capabilities对象,添加启动参数
desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "127.0.0.1:21503",
    "appPackage": "com.android.settings",
    "appActivity": ".Settings"
}
启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
获取屏幕大小
size = driver.get_window_size()
print("设备屏幕大小:", size)
使用swipe方法在设置首页实现向上滑动
start_x = 300
start_y = 1000
end_x = 300
end_y = 500
driver.swipe(start_x, start_y, end_x, end_y, duration=5000)
关闭APP
time.sleep(3)
driver.quit()

4. 注意事项

坐标的选择不能在屏幕的坐标之外,也不能选择在边界值上,要在屏幕坐标之内的范围选择。

如果滑动不明显,可以增加滑动次数。

二、Scroll滚动

1.

Scroll滚动是从页面的一个元素滑动到另一个元素,直到页面自动停止,它适用于需要从一个元素滑动到另一个元素的场景。

2. 参数说明

origin_el:滑动开始的元素

destination_el:滑动结束的元素

duration(可选):滑动效果的持续时间,单位为毫秒,默认为None

3. 实现方法

from appium import webdriver
import time
创建Desired capabilities对象,添加启动参数
desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "127.0.0.1:21503",
    "appPackage": "com.android.settings",
    "appActivity": ".Settings"
}
启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
定位到存储菜单栏
el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
定位到WLAN菜单栏
el2 = driver.find_element_by_xpath("//*[contains(@text,'WLAN')]")
执行滑动操作
driver.scroll(el1, el2, duration=2000)
关闭APP
time.sleep(3)
driver.quit()

4. 注意事项

scroll方法具有滑动的惯性,惯性的大小可以通过duration参数来控制,duration越大惯性越小。

三、Drag拖拽事件

1.

Drag拖拽是从页面的一个元素滑动到另一个元素,第二个元素代替第一个元素原本屏幕上的位置,它适用于需要将一个元素拖拽到另一个元素位置的场景。

2. 参数说明

origin_el:滑动开始的元素

destination_el:滑动结束的元素

duration(可选):滑动效果的持续时间,单位为毫秒,默认为None

3. 实现方法

from appium import webdriver
import time
from appium.webdriver.common.touch_action import TouchAction
创建Desired capabilities对象,添加启动参数
desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "127.0.0.1:21503",
    "appPackage": "com.android.settings",
    "appActivity": ".Settings"
}
启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
定位到存储菜单栏
el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
定位到更多菜单栏
el2 = driver.find_element_by_xpath("//*[contains(@text,'更多')]")
执行拖拽操作
driver.drag_and_drop(el1, el2, duration=2000)
关闭APP
time.sleep(3)
driver.quit()

4. 注意事项

drag_and_drop方法没有惯性。

四、自定义滑动方式

除了上述三种滑动方式外,还可以通过TouchAction类来实现自定义的滑动方式,可以使用press()和move_to()方法组合来实现复杂的滑动操作。

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
import time
创建Desired capabilities对象,添加启动参数
desired_caps = {
    "platformName": "Android",
    "platformVersion": "7.1.2",
    "deviceName": "127.0.0.1:21503",
    "appPackage": "com.android.settings",
    "appActivity": ".Settings"
}
启动APP
driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", desired_caps)
定位到存储菜单栏
el1 = driver.find_element_by_xpath("//*[contains(@text,'存储')]")
定位到更多菜单栏
el2 = driver.find_element_by_xpath("//*[contains(@text,'更多')]")
执行自定义滑动操作
TouchAction(driver).press(el1).move_to(el2).release().perform()
关闭APP
time.sleep(3)
driver.quit()

在使用Appium进行自动化测试时,根据不同的场景选择合适的滑动方式非常重要,Swipe滑动适用于需要精确控制滑动起点和终点的场景;Scroll滚动适用于从一个元素滑动到另一个元素的场景;Drag拖拽适用于需要将一个元素拖拽到另一个元素位置的场景;而TouchAction则提供了更灵活的自定义滑动方式,通过合理选择和使用这些滑动方式,可以更加高效地进行移动端应用的自动化测试。

各位小伙伴们,我刚刚为大家分享了有关“appiumjs滑动手机”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!

原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/716153.html

Like (0)
Donate 微信扫一扫 微信扫一扫
K-seo的头像K-seoSEO优化员
Previous 2024-12-08 10:49
Next 2024-12-08 10:51

相关推荐

  • 服务器磁盘故障频发,原因何在?

    服务器磁盘不好使一、问题识别与分析1、磁盘使用情况分析:需要对磁盘的使用情况进行详细分析,这可以通过操作系统自带的磁盘管理工具或第三方软件来实现,重点检查哪些文件和文件夹占用了大量空间,以及是否有异常的磁盘活动,2、性能监控:利用系统的性能监控工具(如Windows的任务管理器、Linux的top命令等),观察……

    2024-12-22
    00
  • 服务器运维管理系统是什么?

    服务器运维管理系统的介绍一、概述 定义与重要性服务器运维管理系统是一种用于监控、管理和维护企业服务器的软件工具,它通过自动化和集中化的方式,确保服务器的稳定运行,提高系统的安全性和性能,减少人工干预,提高运维效率,随着信息技术的发展和企业对信息系统依赖性的增加,服务器运维管理系统已成为企业IT部门不可或缺的工具……

    2024-12-09
    02
  • 大数据分析工具如何助力企业洞察市场趋势与优化决策?

    分析工具与大数据分析在当今数据驱动的世界中,大数据分析已经成为企业获取竞争优势的关键手段,为了有效地处理和分析海量数据,各类分析工具应运而生,这些工具不仅帮助企业从复杂的数据中提取有价值的信息,还支持决策制定、市场分析和客户行为预测等,本文将探讨几种常见的大数据分析工具及其应用,并介绍它们的优缺点,1. Had……

    2024-11-27
    05
  • 香港服务器延迟高的几种解决方法是什么

    优化网络设置、使用CDN加速服务、升级服务器硬件和带宽、选择更优质的数据中心。

    2024-02-05
    0160
  • 服务器ddos防御软件

    当服务器遭受DDoS(Distributed Denial of Service,分布式拒绝服务)攻击时,网站可能无法正常打开或响应变得极慢,DDoS攻击通过大量的请求淹没目标服务器,导致合法用户无法获得服务,以下是一些关于服务器DDoS防护的技术介绍和应对措施:什么是DDoS攻击?DDoS攻击通常由大量受控的“僵尸”网络(即“僵尸电……

    2024-04-11
    0182
  • Android开发的APP有哪些独特优势和挑战?

    如何使用Python编写一个简易的网页爬虫?背景介绍在数字化时代,互联网上充斥着大量有价值的信息,无论是市场研究、数据分析还是个人兴趣,能够自动化地从网页中抓取数据都显得尤为重要,本文将详细介绍如何使用Python编写一个简单的网络爬虫,帮助你实现自动化数据收集的目标,步骤概述设置环境:安装必要的Python库……

    2024-11-01
    03

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

免备案 高防CDN 无视CC/DDOS攻击 限时秒杀,10元即可体验  (专业解决各类攻击)>>点击进入