appium测试之APP元素定位及基本工具介绍

添加配置

这里跟我们之前所说的appium测试工具的配置差不多。

deviceName:设备名称

platformName:测试平台

platformVersion:平台版本

appPackage:测试app包名

appActivity:测试app启动入口

那么写道Pycharm里面就是:

from appium import webdriver

desired_capas={
    'deviceName':'127.0.0.1:62001',
    'platformName':'Android',
    'platformVersion':'5.1.1',
    'appPackage':'net.csdn.csdnplus',
    'appActivity':'.activity.MainActivity',
    'noReset':True  # True没有清除缓存,False清除app缓存的操作
}
rt = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capas)

有没有看着很眼熟,实例化这一步括号里面的操作是我们appium连接界面的那个配置,后面跟着的就是配置参数了。

放在appium工具里面就是这样:

这里我上面用的是夜神模拟器,下面用的是雷电模拟器,里面有一些其他的参数都可以自己加进去。

这里用的是某站的界面,appium连接之后就可以在这里操作,模拟器里面的界面也会随之而动。

uiautomatorviewer使用介绍

此功能在Android SDK中自带,在tools文件夹下

等抓取完之后就会呈现出界面了

本章两个工具就介绍到这里了,两个各有好处,各有所短,后续还会有其他的工具介绍。

元素定位

方法:id定位,name定位(text定位),class_name定位, accessibility_id定位,xpath定位等 (目前1.5版本的已经不支持name定位了),所以APP的定位与selenium定位除了个别的定位方法不同之外,其他的基本都有类似之处。

id定位 根据元素的resource-id属性值进行定位

name定位 根据元素的text属性值进行定位 Appium1.5之后移除了这种方式

class_name定位 根据元素的class属性值进行定位

accessibility_id定位 根据元素的content-desc属性值进行定位Android (IOS->label或name属性)

xpath定位 uiautomatorview没有xpath路径

在appium中使用xpath定位需要自己去写xpath路径

Xpath用法:find_element_by_xpath("//标签名[@属性名称= '属性值']")

如:find_element_by_xpath("//android.widget.TextView[@text= '同意']")

如:find_element_by_xpath("//*[@text= '电子邮件']") 星号表示模糊匹配

id定位

注:定位工具你随意,这里我打开的网易云,定位左上角的按钮,点击操作

from selenium import webdriver
desired_capas = {
  "deviceName": "emulator-5554",
  "platformName": "Android",
  "appPackage": "com.netease.cloudmusic",
  "appActivity": ".activity.MainActivity",
  "platformVersion": "7.1.2",
  "noReset": "True"
}
rt = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capas)
rt.find_element_by_id('com.netease.cloudmusic:id/menu_icon').click()

这里你会发现这里有这么一个http://127.0.0.1:4723...这里是用于连接appium界面的,但是我元素定位工具使用的是 uiautomatorviewer,这两者不冲突,需打开appium才能使用哦。只是appium里面自带了一个定位工具罢了。

class name定位

from selenium import webdriver
desired_capas = {
  "deviceName": "emulator-5554",
  "platformName": "Android",
  "appPackage": "com.netease.cloudmusic",
  "appActivity": ".activity.MainActivity",
  "platformVersion": "7.1.2",
  "noReset": "True"
}
rt = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capas)
rt.find_element_by_id('com.netease.cloudmusic:id/menu_icon').click()
rt.find_element_by_class_name('android.widget.TextView').click()

accessibility_id定位

这个定位方法说来也奇怪,这个定位方法我空了两天,因为之前跑是找不到这个方法的,也就是不可用,具体原因不详,不过官网无消息证明,此处就此放过,后续发现可以使用及时补上。

xpath定位

这里两个都是可以的,随意,切记uiautomatorview无xpath定位给出哦。

from selenium import webdriver
desired_capas = {
  "deviceName": "emulator-5554",
  "platformName": "Android",
  "appPackage": "com.netease.cloudmusic",
  "appActivity": ".activity.MainActivity",
  "platformVersion": "7.1.2",
  "noReset": "True"
}
rt = webdriver.Remote('http://127.0.0.1:4723/wd/hub',desired_capas)
rt.find_element_by_id('com.netease.cloudmusic:id/menu_icon').click()
rt.find_element_by_class_name('android.widget.TextView').click()
rt.find_element_by_xpath('//*[@text="手机号登录"]').click()

xpath的定位方式看个人,复制还是自己写,自己写一半代码还是全文字匹配,都是可以的

有元素定位就会有元素组定位,元素组定位跟selenium类似,都是需要列表取值的方式进行定位。

1. driver.find_elements_by_id()[a]

2. driver.find_elements_by_name()[b]

3. driver.find_elements_by_accessibility_id()[c]

4. driver.find_elements_by_xpath()[d]

APP元素定位会有很多重复的元素,丝毫不亚于web界面元素,更多关于appium测试APP元素定位及基本工具的资料请关注我们其它相关文章!

(0)

相关推荐

  • Python3 + Appium + 安卓模拟器实现APP自动化测试并生成测试报告

    2020年4月补充 鉴于配置自动化测试这套框架确实稍微有点麻烦,许多小伙伴在配置的过程中总是踩坑,最近写了篇简化版的入门教程,不想折腾Android SDK的小伙伴可以移步到那篇文章:https://www.jb51.net/article/169763.htm 概述 本文主要分为以下几个部分 安装Python3 安装Python3的Appium库 安装Android SDK 安装JDK 安装Appium 安装模拟器 编写测试脚本并生成测试报告 项目示例下载地址: https://github.

  • Python+appium框架原生代码实现App自动化测试详解

    step1:首先介绍下python+appium的框架结构,如下截图所示 (1):apk目录主要放置待测app的apk资源: (2):config目录主要放置配置文件信息,包含:数据库连接配置.UI自动化脚本中所需的页面元素信息及app启动信息.自动化报告邮件发送配置信息.接口请求的对应的url信息等[大家可根据待测app的功能添加或减少配置文件信息]. (3):report目录主要放置测试完成后生成的测试报告信息: (4):src目录下包含的目录如下 common目录:app启动方法的封装文件

  • 详解appium自动化测试工具(monitor、uiautomatorviewer)

    appium 是一个自动化测试开源工具,支持iOS和 Android平台上的原生应用,web应用和混合应用. 移动原生应用:单纯用ios或者android开发语言编写的.针对具体某类移动设备.可直接被安装到设备里的应用,一般可通过应用商店获取,比如某个游戏app: 移动web应用:使用移动浏览器访问的应用(appium支持iOS上的Safari和Android上的Chrome),不需要下载到设备上,而是通过浏览器直接访问,比如H5九曲封神游戏: 混合应用:同时使用网页语言与程序语言开发,通过应用

  • python爬虫之Appium爬取手机App数据及模拟用户手势

    目录 Appium 模拟操作 屏幕滑动 屏幕点击 屏幕拖动 屏幕拖拽 文本输入 动作链 实战:爬取微博首页信息 Appium 在前文的讲解中,我们学会了如何安装Appium,以及一些基础获取App元素内容的方式.但认真看过前文的读者,肯定在博主获取元素的时候观察到了一个现象. 那就是手机App的内容并不是一次性加载出来的,比如大多数Android手机列表ListView,都是异步加载,也就是你滑动到那个位置,它才会显示出它的内容. 也就是说,我们前面爬取微博首页全部信息的时候,如果你不滑动先加载

  • appium测试之APP元素定位及基本工具介绍

    添加配置 这里跟我们之前所说的appium测试工具的配置差不多. deviceName:设备名称 platformName:测试平台 platformVersion:平台版本 appPackage:测试app包名 appActivity:测试app启动入口 那么写道Pycharm里面就是: from appium import webdriver desired_capas={ 'deviceName':'127.0.0.1:62001', 'platformName':'Android', '

  • selenium+python自动化测试之页面元素定位

    上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位 查看页面源码 要定位页面元素,需要找到页面的源码,IE浏览器中,打开页面后,在页面上点击鼠标右键,会有"查看源代码"的选项,点击后就会进入页面源码页面,在这里就可以找到页面的所有元素 使用Chrome浏览器打开页面后,在浏览器的地

  • Appium自动化测试实现H5页面元素定位

    目录 简介 H5元素定位准备工作 Webview 调试模式是否开启检查 拿到H5页面地址和chrom版本信息 实战案例 简介   在现在的移动端App中,由于开发效率.需求频繁变更的需求情况下,经常有相关的运营需求,经常要进行更新,如果全部采用原生开发,需要的成本比较高,后来就出现了内嵌的H5页面.那么这些H5页面元素该如何进行定位操作呢?   针对这种H5场景直接使用前面所讲的方法来进行定位是不行,因为前面的都是基于Andriod原生控件进行元素定位,而Web网页是单独的B/S架构,两者的运行

  • 详解Python自动化中这八大元素定位

    一.find_element_by_id() find_element_by_id() 1.从上面定位到的元素属性中,可以看到有个id属性:id="kw",这里可以通过它的id属性定位到这个元素. 2.定位到搜索框后,用send_keys()方法,就可以输入文本. from selenium import webdriver driver = webdriver.Firefox() driver.get("http://www.baidu.com") # 通过id定

  • 如何提取Playwright录制文件中的元素定位信息

    目录 引言 方法研究 提取代码 代码解析 引言 最近组内推行Playwright进行自动化测试,由我封装了一个简单的框架供大家使用.本意是想让大家使用Page Object模式来编写自动化代码的,可是不知道是因为大家嫌麻烦,还是Playwright自带的录制工具太好用,基本上都是先录制,再把录制好的脚本放到框架中执行,结果就是Page Object的优势完全没有享受到,另外我在页面操作中加入了自动等待.重试等优化机制也是,还得在脚本里面一个个处理.由此,我分析大家不愿意用Page Object的

  • java selenium元素定位大全

    页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法.  测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 阅读目录 自动化测试步骤 定位方法大全 如何定位 通过ID查找元素: By.id() 通过Name查找元素:By.name() 通过TagName查找元素: By.tagName() 通过ClassName 查找元素 By.className 通过LinkText查找元素 By.linkText(); 通过PartialL

  • css元素定位

    css元素定位 1. position:static|无定位position:static是所有元素定位的默认值, 一般不用注明,除非有需要取消继承的别的定位 example:#div-1 { position:static;} 2. position:relative|相对定位使用position:relative,就需要top,bottom,left,right4个属性来配合,确定元素的位置.如果要让div-1层向下移动20px,左移40px: example:#div-1 { positi

  • 一个JavaScript操作元素定位元素的实例

    操作元素定位元素,用js来实现是个不错的选择,下面有个示例,需要的朋友可以看看 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>每天一个JavaScript实例-操作元素定位元素</title> <style> div#

  • jQuery实现ToolTip元素定位显示功能示例

    本文实例讲述了jQuery实现ToolTip元素定位显示功能的方法.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"&

  • Python2 Selenium元素定位的实现(8种)

    当我们想让 Selenium 自动地操作浏览器时,就必须告诉 Selenium 如何去定位某个元素或一组元素,每个元素都有着不同的标签名和属性值,Selenium 提供了以下8种定位元素的方式,每种方式对应了2个方法: find_element_by_( ),是用来定位单个元素的,find_elements_by_( ),是用来定位多个元素的. 通过 id 定位 通过 name 定位 通过 class 定位 通过 tag 定位 通过 link 定位 通过 partial link 定位 通过 x

随机推荐