运行Appium+Python Clinet + 夜神模拟器

  • 1启动夜神模拟器
    • 1解决adb version不兼容问题
    • 2启动夜神模拟器设备
    • 3安装测试app
  • 2运行与使用Appium
  • 3编写Appium自动化测试脚本
    • 1脚本讲解
    • 2Appium获取元素的方式
    • 3获取apk包名和launcherActivity
    • 4获取apk元素

1、启动夜神模拟器

1、解决adb version不兼容问题

遇到问题:
目前运行服务器端的adb版本(也就是夜神模拟器的adb版本)比客户端的版本(也就是SDK目录下的adb版本)低。
运行Appium+Python Clinet + 夜神模拟器_第1张图片
报错信息如下:
adb server version(31) doesn’t match this client (36);killing…
这里写图片描述
解决办法:
a、关掉夜神模拟器。同时去任务管理器里看下,adb.exe以及nox_adb.exe这2个进程有没有在运行?有的话就结束掉。
b、找到SDK的目录和夜神模拟器的目录,将SDK目录(C:\Program Files (x86)\Android\android-sdk\platform-tools)下的adb.exe文件,复制到夜神模拟器的目录(C:\Program Files (x86)\Nox\bin)下,将夜神模拟器目录下原本的adb.exe和nox_adb.exe修改文件名为adb_bak.exe和nox_adb_bak.exe,将从SDK目录复制过来的adb.exe放在夜神目录下,同时复制一份改名为nox_adb.exe。

2、启动夜神模拟器设备

  1. 打开cmd命令行,进入夜神安装目录,执行如下命令:

    cd D:\Program Files (x86)\nox\bin
    nox_adb.exe connect 127.0.0.1:62001
  2. 在cmd命令行中,输入:adb devices查看
    存在:127.0.0.1:62001 device
    即为成功!

    adb devices

    运行Appium+Python Clinet + 夜神模拟器_第2张图片

3、安装测试app

将测试app.apk安装包拖到夜神模拟器即可安装测试app。

2、运行与使用Appium

安装完成桌面会生成一个紫色的appium 图标,双击打开。
运行Appium+Python Clinet + 夜神模拟器_第3张图片
默认显示监控的 host 和 port ,这和 Appium-Server中是一致的。点击 “Start Server V 1.7.1” 按钮启动服务。
运行Appium+Python Clinet + 夜神模拟器_第4张图片
现在,编写 Appium 自动化测试脚本,可以通过Appium-desktop 来运行测试了。

3、编写Appium自动化测试脚本

1、脚本讲解

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time

desired_caps = {}
desired_caps['platformName'] = "Android"         # 声明是ios还是Android系统
desired_caps['platformVersion'] = '4.4.2'        # Android内核版本号,可以在夜神模拟器设置中查看   
desired_caps['deviceName'] = '127.0.0.1:62001'   # 连接的设备名称
desired_caps['appPackage'] = 'com.taobao.taobao'    # apk的包名
desired_caps['appActivity'] = 'com.taobao.tao.welcome.Welcome'  # apk的launcherActivity

driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)          # 建立 session

time.sleep(5)

driver.find_element_by_id("************").click()         # 点击元素

driver.find_element_by_xpath("************").click()      # 点击元素

driver.find_element_by_xpath("************").send_keys(u'123456')   # 发送键值

driver.quit()      # 退出 session

2、Appium获取元素的方式

通过xpyth定位:find_element_by_xpath(“//android.widget.TextView[10]”) xpath下标从1开始,使用完整的classname
通过text name:find_element_by_name(name对应uiautomator扫描后text的内容)
通过id:find_element_by_id(id对应resource-id)
通过classname定位:find_element_by_class_name(class_name对应class)
通过accessibility id:find_element_by_accessibility_id(accessibility_id对应content-desc)
定位到某个文本框,并输入内容:
driver.find_element_by_id(“xxxxx”) .send_keys(“123456”)
滑动屏幕:
获取屏幕尺寸 width=self.driver.get_window_size()[‘width’] height=self.driver.get_window_size()[‘height’]
滑动屏幕 driver.swipe(width*9/10, height*1/2, width*1/10, height*1/2, 1000)

3、获取apk包名和launcherActivity

  1. 把测试app.apk放在D:\test\文件夹下
  2. 打开cmd命令行,输入:aapt dump badging D:\test\app.apk(apk的全名,比如:手机淘宝.apk)
    这里可以看到apk包名为:com.taobao.taobao
    运行Appium+Python Clinet + 夜神模拟器_第5张图片
  3. 获取launcherActivity
    可以得到launcherActivity为:com.taobao.tao.welcome.Welcome
    运行Appium+Python Clinet + 夜神模拟器_第6张图片

4、获取apk元素

  1. 首先执行测试脚本
  2. 使用Appium的“Start Inspector Session”
  3. 启动session查看UI元素
    依次如图所示:
    图一:
    运行Appium+Python Clinet + 夜神模拟器_第7张图片
    图二:
    运行Appium+Python Clinet + 夜神模拟器_第8张图片
    图三:
    运行Appium+Python Clinet + 夜神模拟器_第9张图片

你可能感兴趣的:(Appium)