目录

  • 1.去登录考研帮系统
  • 2.高级手势操作
    • 1.tap()
    • 2.移动 move_to
    • 3.滑屏操作
  • 3.多点触控 multiAction
  • 4.原生嵌套H5

1.去登录考研帮系统

import time
from time import sleepfrom appium import webdriver
#  用python代码去做app自动化 先要获取 app程序的手机信息
#  手机配置信息 我们统一写在info中
info = {#操作平台'platformName':'Android',#版本号'platformVersion':'7.1.2',#设备信息 可自由编写 不能为空 不能为中文'deviceName':'127.0.0.1:62001',# 包名'appPackage':'com.tal.kaoyan',#界面名/入口名#界面名 在这里要注意填写的界面名并不是app打开的第一页的字符码#当前包名和界面名获取的方式:cmd - adb shell dumpsys window | findstr mCurrentFocus# 获取入口名# 1.有apk的情况下获取包名和入口名 cmd - aapt dump badging 文件拖拽# 2.apk的包不见了,又想获取入口名,那我们可以通过monkey命令来获取# 1. adb shell pm list packages -3# 2. adb shell monkey -p 包名 -v-v-v 1# 其中onent的后面就是入口名 末尾的end不要带#有apk的'appActivity':'com.tal.kaoyan.ui.activity.SplashActivity',#重置'noReset':False
}# 手机配置信息写好后,我们就可以启动手机程序 使用webdriver
# Remote必填IP+端口 手机配置信息
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',info)
driver.implicitly_wait(3)# 启动后展示3秒# 点击取消
driver.find_element('id','android:id/button2').click()
# 点击跳过
# driver.find_element('id','com.tal.kaoyan:id/tv_skip').click()# 通过固定元素定位操作遇到多种机型可能出现定位越界 可以通过先获取手机屏幕大小/宽高 按百分比去设置
# 怎么获取 通过selenium webdriver常用函数
x = driver.get_window_size()['width']
y = driver.get_window_size()['height']
print('手机宽度{},手机高度{}'.format(x,y))
time.sleep(1)
driver.swipe(x*0.9,y*0.8,x*0.1,y*0.8,1000)
time.sleep(1)
driver.swipe(x*0.9,y*0.8,x*0.1,y*0.8,1000)
time.sleep(1)
# 通过滑动登录 swipe(开始x,开始y,结束x,结束y,持续时间y/n ms)
# driver.swipe(939,914,174,914,1000)
# time.sleep(1)
# driver.swipe(939,914,174,914,1000)
# time.sleep(1)
# 点击立即体验
driver.find_element('id','com.tal.kaoyan:id/activity_splash_guidfinish').click()# 输入用户名
driver.find_element('id','com.tal.kaoyan:id/login_email_edittext').send_keys('qwerty2664')
# 输入密码
driver.find_element('id','com.tal.kaoyan:id/login_password_edittext').send_keys('qwerty123')
# 点击登录
driver.find_element('id','com.tal.kaoyan:id/login_login_btn').click()time.sleep(3)
driver.quit()

2.高级手势操作

"""
高级手势 TouchAction 滑动长按 拖动 主要解决如滑屏解锁
使用的步骤
1.有基本手势组成,所以我们就要组合创建touchAction对象
2.通过对象去调用操作
3.执行一定要perform
"""import time
from time import sleepfrom appium import webdriver
#  用python代码去做app自动化 先要获取 app程序的手机信息
#  手机配置信息 我们统一写在info中
from appium.webdriver.common.touch_action import TouchActioninfo = {#操作平台'platformName':'Android',#版本号'platformVersion':'7.1.2',#设备信息 可自由编写 不能为空 不能为中文'deviceName':'127.0.0.1:62001',# 包名'appPackage':'com.android.settings',#界面名/入口名#界面名 在这里要注意填写的界面名并不是app打开的第一页的字符码#当前包名和界面名获取的方式:cmd - adb shell dumpsys window | findstr mCurrentFoucus# 获取入口名# 1.有apk的情况下获取包名和入口名 cmd - aapt dump badging 文件拖拽# 2.apk的包不见了,又想获取入口名,那我们可以通过monkey命令来获取# 1. adb shell pm list packages -3# 2. adb shell monkey -p 包名 -v-v-v 1# 其中onent的后面就是入口名 末尾的end不要带#有apk的'appActivity':'com.android.settings.ChooseLockPattern',#重置'noReset':False
}# 去登录考研帮系统
# 手机配置信息写好后,我们就可以启动手机程序 使用webdriver
# Remote必填IP+端口 手机配置信息
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',info)
driver.implicitly_wait(3)

1.tap()

# wlan = driver.find_element('xpath','//*[@text="WLAN"]')
# 通过TouchAction操作是需要导包
# action1 = TouchAction(driver)
# action1.tap(wlan)
# action1.perform()

2.移动 move_to

# TouchAction(driver).press(x=550,y=1790).wait(1000).move_to(x=470,y=602).release().perform()

3.滑屏操作

# press ()长按 release()抬起 wait(ms) perform()执行
TouchAction(driver).press(x=857.2,y=898.5).wait(1000).move_to(x=540.5,y=1229.4).wait(1000).move_to(x=211.8,y=1599.1).wait(1000).release().perform()time.sleep(3)
driver.quit()

3.多点触控 multiAction

# 多点触控就是touchAction的补充版 支持多个手指操作 针对业务背景: 百度地图放大缩小
# 创建两个手指
import time
from time import sleepfrom appium import webdriver
#  用python代码去做app自动化 先要获取 app程序的手机信息
#  手机配置信息 我们统一写在info中
from appium.webdriver.common.multi_action import MultiAction
from appium.webdriver.common.touch_action import TouchActioninfo = {#操作平台'platformName':'Android',#版本号'platformVersion':'7.1.2',#设备信息 可自由编写 不能为空 不能为中文'deviceName':'127.0.0.1:62001',# 包名'appPackage':'com.baidu.BaiduMap',#界面名/入口名#界面名 在这里要注意填写的界面名并不是app打开的第一页的字符码#当前包名和界面名获取的方式:cmd - adb shell dumpsys window | findstr mCurrentFoucus# 获取入口名# 1.有apk的情况下获取包名和入口名 cmd - aapt dump badging 文件拖拽# 2.apk的包不见了,又想获取入口名,那我们可以通过monkey命令来获取# 1. adb shell pm list packages -3# 2. adb shell monkey -p 包名 -v-v-v 1# 其中onent的后面就是入口名 末尾的end不要带#有apk的'appActivity':'com.baidu.baidumaps.MapsActivity',#重置'noReset':True
}# 去登录考研帮系统
# 手机配置信息写好后,我们就可以启动手机程序 使用webdriver
# Remote必填IP+端口 手机配置信息
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',info)
driver.implicitly_wait(3)action1 = TouchAction(driver)
action1.press(x=552.5,y=446.7).wait(1000).move_to(x=851.2,y=1183.4).wait(1000).release()
action2 = TouchAction(driver)
action2.press(x=337.7,y=1033.5).wait(1000).move_to(x=835.2,y=1114.4).wait(1000).release()# 创建 执行对象
zoom = MultiAction(driver)
zoom.add(action1,action2)
zoom.perform()time.sleep(3)
driver.quit()

4.原生嵌套H5

import time
from time import sleepfrom appium import webdriver
#  用python代码去做app自动化 先要获取 app程序的手机信息
#  手机配置信息 我们统一写在info中
from appium.webdriver.common.multi_action import MultiAction
from appium.webdriver.common.touch_action import TouchActioninfo = {#操作平台'platformName':'Android',#版本号'platformVersion':'7.1.2',#设备信息 可自由编写 不能为空 不能为中文'deviceName':'127.0.0.1:62001',# 包名'appPackage':'com.wondershare.drfone',#界面名/入口名#界面名 在这里要注意填写的界面名并不是app打开的第一页的字符码#当前包名和界面名获取的方式:cmd - adb shell dumpsys window | findstr mCurrentFoucus# 获取入口名# 1.有apk的情况下获取包名和入口名 cmd - aapt dump badging 文件拖拽# 2.apk的包不见了,又想获取入口名,那我们可以通过monkey命令来获取# 1. adb shell pm list packages -3# 2. adb shell monkey -p 包名 -v-v-v 1# 其中onent的后面就是入口名 末尾的end不要带#有apk的'appActivity':'.ui.activity.WelcomeActivity',#重置'noReset':True
}# 去登录考研帮系统
# 手机配置信息写好后,我们就可以启动手机程序 使用webdriver
# Remote必填IP+端口 手机配置信息
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub',info)
driver.implicitly_wait(3)# adb shell monkey -p com.wondershare.drfone -v-v-v 1
driver.find_element('id','com.wondershare.drfone:id/btnBackup').click()
time.sleep(12)
driver.find_element('id','com.wondershare.drfone:id/btnRecoverData').click()
time.sleep(5)
# 原生切换到h5页面 通过句柄切换窗口
#contexts 上下
context = driver.contexts
print(context)time.sleep(3)
driver.switch_to.context('嵌套句柄值填写到这即可')
print('我切换到H5了')# 利用chrome://inspect
driver.find_element('id','xxxx').send_keys('123')#跳回原生界面
driver.switch_to.context('原生句柄值')
print('我又跳回来了')
time.sleep(3)
driver.quit()

Appium常用操作及H5页面元素定位相关推荐

  1. Appium 自动化测试 H5页面元素定位

    简介   在现在的移动端App中,由于开发效率.需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用原生开发,需要的成本比较高,后来就出现了内嵌的H5页面.那么这些H5页面元素 ...

  2. APP UI 自动化测试 H5页面元素定位

    使用 uc-devtools 代替 uiautomatorviewer 查找定位H5元素 由于uiautomatorviewer 只能定位APP原生页面: 所以要定位app H5 页面内的元素 使用 ...

  3. MuMu模拟器+Edge浏览器:Android原生APP嵌入的H5页面元素定位

    前提条件: 1.已安装MuMu模拟器 2.已配置adb环境 adb链接MuMu模拟器 C:\Users\shenyf>adb connect 127.0.0.1:7555 connected t ...

  4. h5页面元素聚焦手机无法弹出键盘

    移动端h5做手机app的直播视频碰到的问题 h5页面元素聚焦手机无法弹出键盘 问题是这样产生的: 公司最近要搞一个直播的h5活动页内嵌到app上,当然我就来负责这个了. 但是这个项目我是半道接手的,原 ...

  5. cypress之实现文件上传下载以及操作iframe下页面元素

    前面讲解了使用cypress框架如何定位.操作页面元素以及校验测试结果,此次课程将介绍如何实现文件上传.操作iframe下面的页面原因以及操作shadow dom下的页面元素.为了完成此次课程目标,拆 ...

  6. selenium课程笔记3-使用selenium中的webdriver对浏览器操作-页面元素定位及操作

    1.打开浏览器,打开网页 1 from selenium import webdriver 2 dr=webdriver.Chrome() 3 dr.get('http://www.baidu.com ...

  7. appium(2)简单的demo、元素定位

    目录 appium-录制用例 获取包名和activity 录制步骤 (1)启动appium客户端,默认启动地址 http://127.0.0.1:4723/wd/hub (2)file>New ...

  8. java 获取页面元素的位置_Selenium Java 页面元素定位2

    一.操作目的 1.1 自动化测试常用操作 1.定位网页上的元素,并存储到一个变量中: 2.对变量进行操作,比如点击或输入文字: 3.设定页面元素的操作值: 二.定位方法汇总 2.1 findEleme ...

  9. 利用python生成微信h5_Python + Appium 微信公众号 H5 页面自动化测试

    本文内容在以下环境运行成功: Windows10 Python2.7 android-sdk_r24.4.1 Appium-windows-1.15.1 chromedriver_2.40 小米手机 ...

最新文章

  1. 找论文太难?试试这款「文本生成」论文搜索工具
  2. Minimum Path Sum,最短路径问题,动态规划
  3. Flash学习笔记(01)
  4. WordPress主题:Zibll子比主题 V4.0 绿色版
  5. IntelliJ IDEA 14 创建maven项目二
  6. android listview 移动到顶部,android listview滚动到顶部
  7. 当你感到迷茫焦虑时,请听听白岩松这个演讲
  8. Android电视远程桌面,【当贝市场】教你使用小米电视远程控制Windows桌面
  9. DB2 SQL执行计划
  10. 做PPT使用的矢量图标网站
  11. 英威腾GD200A系列变频器实现多段速控制的相关参数设置及接线
  12. 数据库分页LIMIT
  13. Linux——eth0,eth1,eth2,lo及ifconfig命令
  14. 非洲Affrike单词
  15. excel基于一列的值统计另一列数值的个数
  16. 有点先生和差不多女士
  17. 官方Nexus软件下载教程
  18. U盘写保护,终极解决办法,
  19. Convolutional Two-Stream Network Fusion for Video Action Recognition翻译
  20. python wms系统源码_java开发的wms仓库管理系统源码(PC+Android)

热门文章

  1. Powershell知识点1:开启脚本限制 报错:无法加载文件,因为在此系统中禁止执行脚本
  2. 根据银行卡号判断所属银行(部分资源网上抄录)
  3. 微信企业号开发—通讯录
  4. 小学加减法教学(9数法)
  5. Unity3D人物换装
  6. 计算机专业文书范文,优秀留学文书汇总(计算机专业).pdf
  7. 分钟换算成时分秒格式
  8. CP2112使用USB转IIC通信教学示例
  9. Deepin下在线安装和使用ClamAV
  10. linux杀毒软件clamav安装