python简单实现appium移动端真机运行自动化测试(Android篇)

Eclipse和Python环境搭建完后,依次安装如下必备品

1、安装jdk,配置环境变量:

   变量名:JAVA_HOME

   变量值:C:\Program Files\Java\jdk1.7.0

   变量名:CLASSPATH

   变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;

2、安装python及selenium和Appium-Python-Client库

3、安装node.js,安装完后使用node -v验证

4、配置android环境变量:

     1>设置 ANDROID_HOME 系统变量为你的 Android SDK 路径。

       F:\环境搭建\eclipse+python3.4+selenium+appium\adt-bundle-windows-x86-20140702\sdk

     2>把 tools 和 platform-tools 两个目录加入到系统的 Path 路径里。

    F:\环境搭建\eclipse+python3.4+selenium+appium\adt-bundle-windows-x86-20140702\sdk\platform-tools

    F:\环境搭建\eclipse+python3.4+selenium+appium\adt-bundle-windows-x86-20140702\sdk\tools

4、安装appium客户端

5、配置appium环境变量:

    1> 把node_modules的bin目录放到系统的Path路径里。

    C:\Program Files (x86)\Appium\node_modules\.bin

6、安装完后使用appium-doctor验证,成功结果如下:

7、打开appium,设置如下:

Device Name可在关于手机中查看,用USB连接手机后在开发者选项开启USB调试

8、用安卓sdk\tools下自带的uiautomatorviewer工具定位元素

9、安卓移动端QQ登录自动化测试代码如下:

#-*- coding: UTF-8 -*-
import os
import time
import unittest
# from selenium import webdriver
from appium import webdriver


desired_caps={}
desired_caps['platformName']='Android'
desired_caps['version']='8.0.0'
desired_caps['deviceName']='FRD-AL10'#这是测试机的型号,可以查看手机的关于本机选项获得
# desired_caps['app'] = PATH('D:\\qq.apk')#被测试的App在电脑上的位置
desired_caps['appPackage'] = 'com.tencent.mobileqq'
desired_caps['appActivity'] = 'com.tencent.mobileqq.activity.SplashActivity'
driver=webdriver.Remote('http://127.0.0.1:4725/wd/hub',desired_caps)
time.sleep(10)
driver.find_element_by_name('登 录').click()
name = driver.find_element_by_name('QQ号/手机号/邮箱')
name.send_keys('254901517')
psd = driver.find_element_by_id('password')
psd.click()
psd.send_keys("12345678")
blogin=driver.find_element_by_id('login')
blogin.click()
time.sleep(10)

10、获取appPackage和appActivity可参考https://blog.csdn.net/xl_lx/article/details/78717917

运行脚本可能会出现这样的错误:selenium.common.exceptions.WebDriverException: Message: A new session could not be created. (Original error: Could not extract PIDs from ps output. PIDS: [], Procs: ["bad pid 'uiautomator'"])

解决方法:

修改 Appium\node_modules\appium\node_modules\appium-adb\lib\adb.js 文件

this.shell("ps '" + name + "'", function (err, stdout) {
...
var procs = [];
var outlines = stdout.split("\n");
outlines.shift() //添加这行

 

 

 

 

  

 

转载于:https://www.cnblogs.com/szmcn/p/7090070.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值