python控制genymotion,利用计算器实现计算
1、环境搭建
Python+Appium 环境
--》安装node.js
--》安装Python
--》安装Appium-Python-Client
pip install Appium-Python-Client
-->安装appium
2、利用appium获取元素
{
"platformName": "Android",
"deviceName": "192.168.231.101:5555",
"platformVersion": "9",
"appPackage": "com.android.calculator2",
"appActivity": "com.android.calculator2.Calculator",
"noReset": true
}
单次连接操作
from appium import webdriver
#定义字典,保存设备信息
device={}
#设备种类
device['deviceName']='192.168.231.101:5555'
#设备平台
device['platformName']='Android'
#移动设备操作系统版本
device['platformVersion']='9'
#运行程序包名
device['appPackage']='com.android.calculator2'
#程序启动页名称
device['appActivity']='com.android.calculator2.Calculator'
#设置不重新安装APP
device['noReset']=True
#启动连接设备
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",device)
data=[['12','+','22','34'],['23','-','1','22'],['3','*','4','12'],['12','/','3','4']]
#将运算符,格式化
for i in range(len(data)):
if data[i][1]=='+':
data[i][1]='add'
elif data[i][1]=='-':
data[i][1]='sub'
elif data[i][1]=='*':
data[i][1]='mul'
else:
data[i][1]='div'
#
for i in data:
for j in range(0,len(i)-1):
num = i[j]
if j!=1 :
for a in num :
driver.find_element_by_id("com.android.calculator2:id/digit_"+a).click()
else:
driver.find_element_by_id("com.android.calculator2:id/op_"+i[1]).click()
driver.find_element_by_id("com.android.calculator2:id/eq").click()
res=driver.find_element_by_id("com.android.calculator2:id/result").text
if res==str(i[3]):
print("通过")
else:
print("失败")
print('actually=',res,'expected',i[3])
driver.quit()
3、参数化
from appium import webdriver
#定义字典,保存设备信息
device={}
#设备种类
device['deviceName']='192.168.231.101:5555'
#设备平台
device['platformName']='Android'
#移动设备操作系统版本
device['platformVersion']='9'
#运行程序包名
device['appPackage']='com.android.calculator2'
#程序启动页名称
device['appActivity']='com.android.calculator2.Calculator'
#设置不重新安装APP
device['noReset']=True
#启动连接设备
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",device)
data=[['12','+','22','34'],['23','-','1','22'],['3','*','4','12'],['12','/','3','4']]
#将运算符,格式化
for i in range(len(data)):
if data[i][1]=='+':
data[i][1]='add'
elif data[i][1]=='-':
data[i][1]='sub'
elif data[i][1]=='*':
data[i][1]='mul'
else:
data[i][1]='div'
#
for i in data:
for j in range(0,len(i)-1):
num = i[j]
if j!=1 :
for a in num :
driver.find_element_by_id("com.android.calculator2:id/digit_"+a).click()
else:
driver.find_element_by_id("com.android.calculator2:id/op_"+i[1]).click()
driver.find_element_by_id("com.android.calculator2:id/eq").click()
res=driver.find_element_by_id("com.android.calculator2:id/result").text
if res==str(i[3]):
print("通过")
else:
print("失败")
print('actually=',res,'expected',i[3])
driver.quit()
读取文件进行参数化
from appium import webdriver
#定义字典,保存设备信息
device={}
#设备种类
device['deviceName']='192.168.231.101:5555'
#设备平台
device['platformName']='Android'
#移动设备操作系统版本
device['platformVersion']='9'
#运行程序包名
device['appPackage']='com.android.calculator2'
#程序启动页名称
device['appActivity']='com.android.calculator2.Calculator'
#设置不重新安装APP
device['noReset']=True
#启动连接设备
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",device)
#读取文件
file=open('E:\cal.txt','r')
data =[]
for rows in file:
strs = rows.split()
data.append(strs)
#将运算符,格式化
for i in range(len(data)):
if data[i][1]=='+':
data[i][1]='add'
elif data[i][1]=='-':
data[i][1]='sub'
elif data[i][1]=='*':
data[i][1]='mul'
else:
data[i][1]='div'
#
for i in data:
for j in range(0,len(i)-1):
num = i[j]
if j!=1 :
for a in num :
driver.find_element_by_id("com.android.calculator2:id/digit_"+a).click()
else:
driver.find_element_by_id("com.android.calculator2:id/op_"+i[1]).click()
driver.find_element_by_id("com.android.calculator2:id/eq").click()
res=driver.find_element_by_id("com.android.calculator2:id/result").text
if res==str(i[3]):
print("通过")
else:
print("失败")
print('actually=',res,'expected',i[3])
driver.quit()
View Code
读取Excel进行参数化
import pandas
data = pandas.read_excel("e:\cal2.xls", sheet_name="Sheet1",names=["num1","op","num2","expected"])
data = data.values.tolist()
完整代码
from appium import webdriver
import pandas
#定义字典,保存设备信息
device={}
#设备种类
device['deviceName']='192.168.231.101:5555'
#设备平台
device['platformName']='Android'
#移动设备操作系统版本
device['platformVersion']='9'
#运行程序包名
device['appPackage']='com.android.calculator2'
#程序启动页名称
device['appActivity']='com.android.calculator2.Calculator'
#设置不重新安装APP
device['noReset']=True
#启动连接设备
driver=webdriver.Remote("http://127.0.0.1:4723/wd/hub",device)
#读取文件
data = pandas.read_excel("e:\cal2.xls", sheet_name="Sheet1",names=["num1","op","num2","expected"])
data = data.values.tolist()
#将运算符,格式化
for i in range(len(data)):
if data[i][1]=='+':
data[i][1]='add'
elif data[i][1]=='-':
data[i][1]='sub'
elif data[i][1]=='*':
data[i][1]='mul'
else:
data[i][1]='div'
#
for i in data:
for j in range(0,len(i)-1):
num = i[j]
num = str(num)
if j!=1 :
for a in num :
driver.find_element_by_id("com.android.calculator2:id/digit_"+a).click()
else:
driver.find_element_by_id("com.android.calculator2:id/op_"+i[1]).click()
driver.find_element_by_id("com.android.calculator2:id/eq").click()
res=driver.find_element_by_id("com.android.calculator2:id/result").text
if res==str(i[3]):
print("通过")
else:
print("失败")
print('actually=',res,'expected',i[3])
driver.quit()
View Code
python控制genymotion,利用计算器实现计算 相关文章
Python爬虫新手入门教学(六):制作词云图
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 前文内容 Python爬虫新手入门教学(一):爬取豆瓣电影排行信息 Python爬虫新手入门教学(二):爬取小说 Python爬虫新手入门教学(三):爬取链
如何用Maven打war包
我的控制台代码就是打的war包 project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd" modelVersio
【python编码】 UnicodeDecodeError 分析和解决
现象 环境是linux,python2.7,执行以下代码: import jsona = '{"task_id": ["8061964"], "ch_reason": "\u589e\u52a0\u534f\u8bae\u7ba1\u7406\u6a21\u5757\uff0c\u7528\u6765\u7ba1\u7406\u5b58\u6b3e\u4ea7\u54c1\u7684\u6cd5\u5f8b\u534f\u8bae", "chg_
连接控制器功能
//连接控制器 public static int wether_link = 0; private void link_button_Click(object sender, EventArgs e) { if (wether_link == 0) { short res = LTSMC.smc_board_init(CardNum, 2, "192.168.5.11", 115200);// 1:串口连接类型;2: 网口连接类型
java控制夜神访问浏览器
1、环境搭建java+eclipse+appium 参考文档:https://www.jianshu.com/p/1b959e0baae2 2、安装夜神,解决adb无法控制夜神问题 参考文档:https://i.cnblogs.com/posts/edit;postId=14331628 3、利用appium查找页面元素 --》打开浏览器 --》查看设备名称 adb d
Python学习第三天
条件表达式 相当于 c/c++ 中的三目运算符 ____:__ 在python中语法是 ___if ___ else ___ 比如输出两个数中较大数: a = int(input('请输入第一个整数: '))b = int(input('请输入第二个整数: '))if a = b: print(a)else: print(b)使用条件表达式可以写成print(
python中解析接口返回的xml、html数据对象
BeautifulSoup库通俗来说是【解析、遍历、维护“标签树”(例如html、xml等格式的数据对象)的功能库】 安装BeautifulSoup 库 导包 from bs4 import BeautifulSoup 示例 import unittestimport requestsfrom bs4 import BeautifulSoupclass MyTestCase(unittes
python的一点点学习笔记
自学语言,比较艰难,希望能坚持下去。 字符串处理函数 len(x)返回x的长度str(x)与eval函数相反 在两侧加引号chr(u) 通过Unicode编码u返回对应的字符ord(x)返回字符x对应的Unicode编码 字符串处理方法 str.lower()/str.upper() 将全部字符小写/大写str.split
Python爬虫新手入门教学(五):爬取B站视频弹幕
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 前文内容 Python爬虫新手入门教学(一):爬取豆瓣电影排行信息 Python爬虫新手入门教学(二):爬取小说 Python爬虫新手入门教学(三):爬取链
python - os和shutil
os和shutil 一、os模块 os模块负责程序与操作系统的交互,提供了访问操作系统底层的接口,多用于文件处理。 方法 详解 os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录;相当于shell下cd os.curdir