Appium + Python 自动化学习之九:TouchAction连续滑动操作

TouchAction是Appium的辅助类,主要针对手势操作,比如滑动、长按、拖动等。针对最新版本(5.0.4)已不支持swipe等方法,所以可以用TouchAction类来封装成新的swipe方法。

1.press按压方法


开始按压一个元素或坐标点(x,y)。通过手指按压手机屏幕的某个位置。
格式:

press(self, el=None,  x=None, y=None)

press也可以接收屏幕的坐标(x,y)。

实例

TouchAction(driver).press(x=0,y=308).release().perform()

2.longPress长按方法


开始按压一个元素或坐标点(x,y)。 相比press()方法,longPress()多了一个入参duration,应为需要长按,所以须有一个按的时间。它以毫秒为单位。1000表示按一秒钟。其用法与上面的press()方法相同。
格式:

longPress(self, el=None, x=None, y=None, duration=1000)

实例:

TouchAction(driver).longPress(100,300,10000).release().perform()

3.tap点击方法


对一个元素或控件执行点击操作。
格式:

tap(self,el=None, x=None,  y=None,count=1)

实例:

TouchAction(driver).tap(200 ,200).perform().release()

4.moveTo移动方法


将指针(光标)从上一个点移动到指定的元素或点。
格式:

moveTo(self,el=None, x=None, y=None)

实例:

TouchAction(driver).press(x=256,y=591).wait(1000)\
    .move_to(x=546,y=540).wait(1000)\
    .move_to(x=835,y=869).wait(1000)\
    .move_to(x=568,y=1151).wait(1000)\
    .release().perform()

5.wait暂停方法


暂停脚本的执行,单位为毫秒。
格式:

wait(self,ms=0)

实例:

TouchAction(driver).wait(1000)

实现九宫格的实例:
测试app:随手记
在这里插入图片描述

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import NoSuchElementException
from time import sleep


desired_caps={
    'platformName':'Android',
    'platformVesion':'6.0.1',
    'deviceName':'127.0.0.1:21305',
    'appPackage':'com.mymoney',
    'appActivity':'com.mymoney.biz.main.v12.MainActivityV12',
    'noReset':False

}

driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
driver.implicitly_wait(10)
try:
	driver.find_element_by_id("com.mymoney:id/confirmBtn").click()
	driver.find_element_by_xpath("//*[@text='允许']").click()
	driver.find_element_by_xpath("//*[@text='允许']").click()
except Exception as e:
	pass
driver.find_element_by_id("com.mymoney:id/nav_btn_forth").click()
#实现向上滑动操作
def swipetestup():
    x=driver.get_window_size()['width']
    y=driver.get_window_size()['height']
    x1=x*0.5
    y1=y*0.9
    y2=y*0.1
    driver.swipe(x1,y1,x1,y2,5000)

swipetestup()
sleep(1)
driver.find_element_by_xpath("//*[@text='高级功能']").click()
driver.find_element_by_id("com.mymoney:id/password_protect").click()
driver.find_element_by_xpath("//*[@text='手势密码']").click()
for i in range(2):
	TouchAction(driver).press(x=256,y=591).wait(1000)\
   	    .move_to(x=546,y=540).wait(1000)\
            .move_to(x=835,y=869).wait(1000)\
            .move_to(x=568,y=1151).wait(1000)\
            .release().perform()

注意:

本例中还用到了别外两个新方法。
release() 结束的行动取消屏幕上的指针。
perform() 执行的操作发送到服务器的命令操作。

实例场景:
在头条上按照元素来实现频道移动

from appium import webdriver
from appium.webdriver.common.touch_action import TouchAction
from time import sleep

desired_caps={
    'platformName':'Android',
    'platformVesion':'6.0.1',
    'deviceName':'127.0.0.1:21305',
    'appPackage':'com.ss.android.article.news',
    'appActivity':'com.ss.android.article.news.activity.MainActivity',
    'noReset':False

}
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_caps)
sleep(1)
driver.find_element_by_id("com.ss.android.article.news:id/ahy").click()
driver.find_element_by_id("com.ss.android.article.news:id/aig").click()

ele=driver.find_element_by_xpath("//*[@text='NBA']")
ele1=driver.find_element_by_xpath("//*[@text='热点']")
TouchAction(driver).long_press(ele,10000).move_to(ele1).wait(1000).release().perform()
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Appium是一个用于自动化移动应用程序的开源工具,而Python是一种流行的编程语言,可以使用AppiumPython来实现移动应用程序的自动化测试。 连接模拟器并启动淘宝App的步骤如下: 1. 首先,需要安装AppiumPython的相关环境,包括Node.js、npm、Appium Server、PythonAppium Python客户端库。 2.打开Android模拟器,确保模拟器已经启动。 3.导入所需的Python库,包括webdriver、MobileBy和AppiumWebElement。 4.设置Appium连接参数,包括设备名称、平台版本、App路径和包名。 5.通过Appium Python客户端库中的webdriver.Remote()方法建立与Appium Server的连接。 6.使用find_element()方法找到并点击启动淘宝App的按钮。 7.等待淘宝App启动完成。 完整的Python代码示例如下: ```python from appium import webdriver from appium.webdriver.common.mobileby import MobileBy from appium.webdriver.webelement import WebElement desired_caps = { 'platformName': 'Android', 'platformVersion': '10', 'deviceName': 'emulator-5554', 'appPackage': 'com.taobao.taobao', 'appActivity': 'com.taobao.tao.homepage.MainActivity3' } driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps) button = driver.find_element(MobileBy.XPATH, '//android.widget.Button[@text="淘宝"]') button.click() # 等待淘宝App启动完成 driver.implicitly_wait(10) driver.quit() ``` 请注意,上述代码中的设备名称、平台版本、App路径和包名需要根据实际情况进行修改。 以上就是使用AppiumPython连接模拟器并启动淘宝App的详细步骤和示例代码。通过这种方式,可以进行移动应用程序的自动化测试和操作

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值