Appium+python+Android 计算器case

来源:互联网 发布:淘宝女装分类宝贝图片 编辑:程序博客网 时间:2024/05/17 03:09

一、前提

Appium环境搭建成功   Appium和Android的依赖关系没问题

python安装

详见Appium+android+python连接

二、实践

1、得到计算器的package和activity

详见Appium+android+python连接

2、自动化控制手机通过元素定位各icon或功能,因此写代码前需要审查这些元素

方法:

(1)appium client之放大器,得到手机当前界面,通过点击icon得到各元素

(2)android sdk自带的uiautomatorviewer

我的mac上路径是: /Users/tanyuxi/Library/Android/sdk/tools/bin

可以直接在终端输入命令: open /Users/tanyuxi/Library/Android/sdk/tools/bin

看到黑框uiautomatorviewer

注意class和(1)中的type一致

3、代码实践

#coding=utf-8

import os

from selenium import webdriver

import time

from selenium.webdriver.common.by import By     #使用By这种定位前要将By类导入

PATH = lambda p: os.path.abspath(os.path.join(os.path.dirname(__file__), p))

desired_caps = {}

desired_caps['deviceName'] = '90edf476'

desired_caps['platformName'] = 'Android'

desired_caps['browserName'] = ''

desired_caps['platformVersion'] = '5.1.1'

desired_caps['appPackage'] = 'com.miui.calculator'

desired_caps['appActivity'] = '.cal.NormalCalculatorActivity'

desired_caps['autoLaunch'] = 'true'

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

#adb logcat | grep ActivityManager

#Displayed

 

#1+8=

driver.find_element_by_id("com.miui.calculator:id/btn_1").click()

driver.find_element_by_id("com.miui.calculator:id/btn_plus").click()

driver.find_element_by_id("com.miui.calculator:id/btn_8").click()#id resource_id

driver.find_element_by_xpath("//android.widget.FrameLayout[1]/android.widget.FrameLayout[2]/android.widget.LinearLayout[1]/android.widget.FrameLayout[2]/android.widget.LinearLayout[1]/android.widget.LinearLayout[2]/android.widget.LinearLayout[1]/android.view.View[1]").click()#equal

4driver函数及行参(见【2】中picture)

函数
 行参获取
driver.find_element_by_id() resource_iddriver.find_element_by_xpath() xpathdriver.find_element_by_class_name() typedriver.find_element_by_name() text?driver.find_element_by_accessibility_id() content-desc?

最后两项,网上查的是这样,但是用代码尝试,并不行?这个问题留待解决

未完待续...