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

1,启动夜神模拟器

1,解决adb版不兼容问题

遇到问题: 
目前运行服务器端的adb版本(也就是夜神模拟器的adb版本)比客户端的版本(也就是SDK目录下的adb版本)低。 
这里写图片描述 
报错信息如下: 
adb server version(31)does not (36);杀死... 
这里写图片描述 
解决办法: 
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
    • 1
    • 2
  2. 在cmd命令行中,输入:adb devices查看存在 
    :127.0.0.1:62001设备 
    即为成功!

    adb devices
    • 1

    这里写图片描述

3,安装测试应用程式

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

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的“开始检查器会话”
  3. 启动会话查看UI元素 
    依次如图产品所示: 
    图一: 
    这里写图片描述 
    图二: 
    这里写图片描述
    图三: 
    这里写图片描述
版权声明:本文为博主原创文章,未经博主允许不得转载

猜你喜欢

转载自blog.csdn.net/qwl755/article/details/80783204