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

1、启动夜神模拟器

1、解决adb version不兼容问题

遇到问题:
目前运行服务器端的adb版本(也就是夜神模拟器的adb版本)比客户端的版本(也就是SDK目录下的adb版本)低。
这里写图片描述
报错信息如下:
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

    这里写图片描述

3、安装测试app

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

2、运行与使用Appium

安装完成桌面会生成一个紫色的appium 图标,双击打开。
这里写图片描述
默认显示监控的 host 和 port ,这和 Appium-Server中是一致的。点击 “Start Server V 1.7.1” 按钮启动服务。
这里写图片描述
现在,编写 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
    这里写图片描述
  3. 获取launcherActivity
    可以得到launcherActivity为:com.taobao.tao.welcome.Welcome
    这里写图片描述

4、获取apk元素

  1. 首先执行测试脚本
  2. 使用Appium的“Start Inspector Session”
  3. 启动session查看UI元素
    依次如图所示:
    图一:
    这里写图片描述
    图二:
    这里写图片描述
    图三:
    这里写图片描述
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值