1.元素定位(采用Appium-desktop自带的工具)

1.1将初始化参数复制进去校验json格式正确且保存后,点击start session

初始化参数来源如下:

# 定义启动设备需要的参数

desired_caps = {

"platformName": "Android", #手机系统

"deviceName": "127.0.0.1:62001",#设备名称,在dos输入adb devices获取

"platformVersion": "5.1.1", #手机系统版本

"appPackage": "com.yw.yzz", #包名(#在dos下进入xxx.apk所存在的文件夹中,输入aapt dump badging xxx.apk获取)

"appActivity": "com.yw.yzz.biz.splash.SplashActivity",#APP活动

(#在dos下进入xxx.apk所存在的文件夹中,输入aapt dump badging xxx.apk获取)

"unicodeKeyboard": "True",#使用appium的输入法,支持中文并隐藏键盘

"resetKeyboard": "True", #将输入法重置回设备默认的输入法

"noReset": "True"#appium启动app时会自动清除app里面的数据,noReset=True就是启动app不清除数据

}

1.2在模拟器中打开app

1.3定位工具页面如下,且通过元素定位按钮和刷新按钮进行页面切换和进行元素定位

1.4相同id情况下如何定位出元素

self.driver.find_elements_by_id("com.yw.yzz:id/tv_btn")[0]

用self.driver.find_elements_by_id("com.yw.yzz:id/tv_btn")找出所有id=com.yw.yzz:id/tv_btn的元素,返回是列表,再通过索引[0]取出第一个

1.5通过坐标定位driver.tap([(124,273),(232,396)],100)

bounds[340,342][448,363]:340表示x轴的开始,448表示x轴的的结束;342表示Y轴的开始,363表示Y轴的的结束,[340,342]表示X、Y轴的开始,这组坐标表示是左上角[448,363]表示表示X、Y轴的结束,这组坐标表示右下角

2.初始化脚本

2.1打开appium

2.2打开模拟器,且模拟器上已安装项目包

2.3在pycharm上编写脚本,开始第一条APP自动化脚本咯

#coding=utf-8

from appium import webdriver

from time import sleep

# 定义启动设备需要的参数

desired_caps = {

"platformName": "Android", #手机系统

"deviceName": "127.0.0.1:62001",#设备名称,在dos输入adb devices获取

"platformVersion": "5.1.1", #手机系统版本

"appPackage": "com.yw.yzz", #包名(#在dos下进入xxx.apk所存在的文件夹中,输入aapt dump badging xxx.apk获取)

"appActivity": "com.yw.yzz.biz.splash.SplashActivity",#APP活动

(#在dos下进入xxx.apk所存在的文件夹中,输入aapt dump badging xxx.apk获取)

"unicodeKeyboard": "True",#使用appium的输入法,支持中文并隐藏键盘

"resetKeyboard": "True", #将输入法重置回设备默认的输入法

"noReset": "True"#appium启动app时会自动清除app里面的数据,noReset=True就是启动app不清除数据

}

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub",desired_caps)

#代码脚本和服务端是通过  http://127.0.0.1:4723/wd/hub 来进行通信的(固定格式)

time.sleep(1)

#打印屏幕高和宽

print(driver.get_window_size())

time.sleep(2)

driver.swipe(500,400,30,400,1000)#向左滑动引导页

time.sleep(1)

driver.swipe(500,400,30,400,1000)

time.sleep(1)

driver.swipe(500,400,30,400,1000)

time.sleep(1)

driver.find_element_by_id("com.yw.yzz:id/btn_open").click()

time.sleep(4)

driver.find_element_by_id("com.yw.yzz:id/recyclerview").click()

driver.find_element_by_id("com.yw.yzz:id/recyclerview").click()

driver.find_element_by_id("com.yw.yzz:id/recyclerview").click()

driver.find_element_by_id("com.yw.yzz:id/seting_tab").click()

driver.find_element_by_id("com.yw.yzz:id/fragment_my_nickname").click()

driver.find_element_by_id(")

driver.find_element_by_id(")

driver.find_element_by_id("com.yw.yzz:id/btn_login").click()

3.关键字

3.1.swipe用法

Swipe(x1,y1,x2,y2,duration)

解释:

x1-开始滑动的x坐标,y1-开始滑动的Y坐标

x2-结束点x坐标,y2-结束点y坐标

duration滑动事件(默认5毫秒)

如下图:向左滑动

3.2. is_displayed()判断某个元素是否存

self.driver.find_element_by_xpath("//android.widget.TextView[@instance='8']").click()   #点击删除默认地址

try:

self.driver.find_element_by_id("com.yw.yzz:id/dialog_im_title").is_displayed()   #判断元素是否存在

except:

    print "Default address can not be deleted"  #不存在执行

else:

self.driver.find_element_by_id("com.yw.yzz:id/dialog_im_positive").click()   #存在执行

App元素定位的更多相关文章

  1. XP定位(APP元素定位)

    Appium app自动化测试经验分享-Xpath定位总结 在我看来,自动化测试中元素定位的倚天剑和屠龙刀莫过于 Xpath和CSS,但CSS只用于Web(之前已经分享过),这次就分享下Xpath的定 ...

  2. App元素定位三种方法

    来自博客: http://testingpai.com/article/1595507262082 以下方法操作前必须确保有手机设备连入电脑,检测是否有手机连入命令 adb devices 第一种:A ...

  3. APP元素定位和操作

    webdriver 提供了八种元素定位方法: 在 Python 语言中对应的定位方法如下:find_element_by_id()find_element_by_name()find_element_ ...

  4. APP元素定位工具weditor

    github地址https://github.com/openatx/weditor python -m weditor --shortcut adb devices 在页面上输入手机设备号,点Con ...

  5. Appium中app的元素定位

    app定位方式,本文只讲Android手机的定位方式. 前提条件是adb连接到模拟器或者是手机(具体连接方式这里不再讲解),证明已连接到设备 adb devices app元素定位工具一:UI Aut ...

  6. App自动化《元素定位方式、元素操作、混合应用、分层设计、代码方式执行Pytest 命令》

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.App 元素定位方式 二.元素操作 三.测试混合应用 四.以代码的方式执行 Pytest 命 ...

  7. Appium常用操作之「元素定位、swipe 滑屏操作」

    坚持原创输出,点击蓝字关注我吧 作者:清菡 博客:oschina.云+社区.知乎等各大平台都有. 目录 一.打开 uiautomatorviewer 二.Appium 常用操作 1.用 layui 做 ...

  8. 6.1 python+appium元素定位方式(登录app)

    1.0.0     :常见的十种元素定位方式 .driver.find_element_by_id() #id定位 .driver.find_element_by_name() #name定位(已经凉 ...

  9. IOS版App的控件元素定位

    前言 Android版App的控件元素可以通过Android studio自带的工具uiautomatorviewer来协助定位! IOS版App的控件元素可以通过Appium来实现(未实现),或ap ...

随机推荐

  1. Helm 从入门到实践 | 从 0 开始制作一个 Helm Charts

    本周 Helm 官方发布博客,指导用户从 v2 迁移到 v3,这标志 Helm 逐渐走向成熟.早在今年 6 月,阿里云就正式发布了国内首个 Helm Hub 中国镜像站:开放云原生应用中心 - Clo ...

  2. 正确重写equals方法和compareTo方法

    一.概述 程序要对一堆数据元素排序,查找,增加删除.数据节点 class Node{ int type; int index; int score; } 规则: 1)对象相等:两个节点n1与n2,如果 ...

  3. JSP实现系统登录

    计算机通过统一资源定位符实现资源访问,URL:Uriform Resource Locator Tomcat服务器的目录结构 /bin:存放各种平台下用于启动和停止Tomcat的脚本文件 /conf: ...

  4. opencv边缘检测报错

    cnts = cv2.findContours(edged_image.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)cnts = cnts[0] if ...

  5. Linux环境基于CentOS7 搭建部署Docker容器

    1.Docker容器概述 区分Docker容器技术和VM虚拟机技术: evernotecid://394EFE90-9CE0-4D65-A8CD-DFEC0DC8061E/appyinxiangcom ...

  6. 章节十六、9-Listeners监听器

    一.IInokedMethodListener 1.实现一个类来监听testcase的运行情况. package listenerspackage; import org.testng.IInvoke ...

  7. Hadoop集群常用的shell命令

    Hadoop集群常用的shell命令 Hadoop集群常用的shell命令 查看Hadoop版本 hadoop -version 启动HDFS start-dfs.sh 启动YARN start-ya ...

  8. Windows server 2008 快速搭建域环境

    之前根据网上的教程搭建,然后出现了很多问题,最后摸索出了一个比较稳妥一点的方法. 对于选系统这里,虽然上一篇文章已经说过了,这里也再强调一下,我使用的是08的系统,使用其他系统的暂不做评价,使用08系 ...

  9. Java假期样卷 简易通讯录

    score.java package score; public class score { String name; String num; int age; boolean sex; double ...

  10. 商用hadoop集群的配置命令分布

    角色 安装 hdfs配置 yarn配置 hdfs 格式化 启动yarn服务 启动hdfs服务 master yum install hadoop-hdfs-namenode yum install h ...