Appium自动化测试常用操作方法和属性、高级操作指令、综合案例

一、Appium自动化测试常用操作方法和属性

  • driver

    •  close_app()                                                         关闭打开的应用

      • quit()                                                            断开连接(后续不能发送指令了)

      • install_app ('apk在电脑的绝对路径')        安装应用

      • remove_app('应用的包名')                      卸载应用

      • is_app_installed('应用的包名')                  判断应用是否安装

      • push_file(目标位置,base64编码的内容)

      • pull_file(来源位置)                                  返回值是base64编码的内容

      • page_source                                             获取界面xml源码

      • find_element ...

      • find_elements ...

      • current_package                                      获取当前操作的应用的包名

      • current_activity                                         获取当前操作的界面的名称

  • element

    • text                                                                  获取元素文本内容
    • click()                                                             点击元素对应位置
    • get_attribute(属性名称)                               获取属性值
    • location获取元素左上角的坐标(相对于屏幕的左上角)
    • size                                                               获取元素的宽高(字典)
import time
from appium import webdriver
from selenium.webdriver.common.by import By

#配置连接手机的参数信息
#所有的参数都是字典的格式:键值对
desired_caps = {}

#设备的名称
desired_caps['deviceName'] = '127.0.0.1:62001'

#系统的名字、类型
desired_caps['platformName'] = 'Android'

#系统的版本
desired_caps['platformVersion'] = '7.1'

#app名称(包名)
desired_caps['appPackage'] = 'com.android.settings'

#要启动的app的界面名称
desired_caps['appActivity'] = '.Settings'

print(desired_caps)

#创建连接
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capabilities=desired_caps)

#获取app名称
print(driver.current_package)
#获取app的界面
print(driver.current_activity)
#元素定位
el1=driver.find_element(By.XPATH,'//*[@text="显示"]')

#获取元素的像素宽和高
print(el1.size)
print(el1.text)

#获取元素坐标
print(el1.location)

#元素点击
el1.click()

time.sleep(3)
driver.quit()

二、高级操作指令

  • 点击操作,输入内容:send_keys()
  • 清除文本内容:clear()
  • 滚动
  • 拖拽
  • TouchAction:进行构建比较复杂的操作:连续的触摸行为(按下,长按,移动,等待,松手,轻敲等等)

三、Appium自动化测试综合案例

#导包
import time
from platform import release

from appium import webdriver
from selenium.webdriver.common.by import By
from appium.webdriver.common.touch_action import TouchAction


#配置连接手机的参数信息
#所有的参数都是字典的格式:键值对
desired_caps = {}

#设备的名称
desired_caps['deviceName'] = '127.0.0.1:62001'

#系统的名字、类型
desired_caps['platformName'] = 'Android'

#系统的版本
desired_caps['platformVersion'] = '7.1'

#app名称(包名)
desired_caps['appPackage'] = 'com.android.settings'

#要启动的app的界面名称
desired_caps['appActivity'] = '.Settings'

#打印字典信息
print(desired_caps)

#创建连接
driver=webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capabilities=desired_caps)

#案例执行
#1.进行滑动:定位2个元素进行滚动
el1=driver.find_element(By.XPATH,"//*[@text='声音']")
el2=driver.find_element(By.XPATH,"//*[@text='WLAN']")

#2.创建一个事件链
action=TouchAction(driver)

#3.通过事件链对象执行操作
action.press(el1).wait(500).move_to(el2)
#4.进行松手操作
action.release()
#5.事件链所有操作必须要提交才能执行
action.perform()

#定位元素
time.sleep(1)
driver.find_element(By.XPATH,"//*[@text='安全']").click()
time.sleep(1)
driver.find_element(By.XPATH,"//*[@text='屏幕锁定']").click()
time.sleep(1)
driver.find_element(By.XPATH,"//*[@text='图案']").click()
time.sleep(2)

#第一次Z字图案
(action.press(x=213,y=903).wait(100)
 .move_to(x=539,y=903).wait(100)
 .move_to(x=867,y=903).wait(100)
 .move_to(x=539,y=1226).wait(100)
 .move_to(x=213,y=1562).wait(100)
 .move_to(x=539,y=1562).wait(100)
 .move_to(x=867, y=1562).wait(100))
#进行松手操作
action.release()
#事件链所有操作必须要提交才能执行
action.perform()

time.sleep(2)
driver.find_element(By.XPATH,"//*[@text='继续']").click()
time.sleep(2)

#第二次Z字图案
(action.press(x=213,y=903).wait(100)
 .move_to(x=539,y=903).wait(100)
 .move_to(x=867,y=903).wait(100)
 .move_to(x=539,y=1226).wait(100)
 .move_to(x=213,y=1562).wait(100)
 .move_to(x=539,y=1562).wait(100)
 .move_to(x=867, y=1562).wait(100))
#进行松手操作
action.release()
#事件链所有操作必须要提交才能执行
action.perform()

time.sleep(2)

driver.find_element(By.XPATH,"//*[@text='确认']").click()
time.sleep(2)
driver.find_element(By.XPATH,"//*[@text='完成']").click()

#等待3秒
time.sleep(3)

#关闭
driver.quit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BatyTao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值