Appium框架API学习(一)

本教程是基于本人学习android NativeApp自动化测试过程积累总结的,学习过程用到的工具是appium+python+UIAutomator+android手机+待测APP!

一、准备定位工具

首先我们需要先下载android studio,然后安装android sdk,在系统变量里添加export ANDROID_HOME="/Users/xxx/Library/Android/sdk"。我们需要的工具就是uiautomator,它在android_sdk/tools/uiautomatorviewer里。

二、启动定位工具

1、在终端上用命令进入tools目录,我的tools目录在/Users/wuyanjiao/Library/Android/sdk/tools,然后直接执行命令./uiautomatorviewer,当看到如下页面就表示工具启动成功。

定位工具

2、手机连接上电脑
用数据线把手机和电脑连接上,并把手机设置成开发者模式,USB调试开启。然后在终端上执行adb devices,可以查看是否连接成功。连接成功后,我们在手机上打开待测APP,在这里我以自带计算器APP为例。打开后,点击图片中左上角第二个按钮,就可以看到app的页面元素了。想要找哪个元素,鼠标移动到上面,就可以看到详细的元素了。

image.png

三、基本定位元素方法

1、find_element_by_id()
当遇到resource-id有唯一值。以定位计算器上8这个元素并点击为例:

number8 = self.driver.find_element_by_id("digit8")
number8.click()

2、find_elements_by_id()
当遇到的resource-id有多个相同的值,可以使用该方法。以元素在列表中的位置来定位,以定位计算器上的8并点击为例:

elements = self.driver.find_elements_by_id("digit8")
elements[0].click()

3、find_element_by_accessibility()
当某个元素的content-desc有值的时候,可以使用该方法。以定位计算器上的÷号为例:

element = self.driver.find_element_by_accessibility_id(u"除")
element.click()

4、find_elements_by_accessibility()
当页面的content-desc值有多个相同的时候,可以使用该方法。以定位计算器上的÷号为例:

elements = self.driver.find_elements_by_accessibility_id(u"除")
elements[0].click()

5、find_element_by_class_name()
当页面的class有值的时候,可以使用该方法,以向计算器上的输入框输入数字为例:

input=self.driver.find_element_by_class_name("android.widget.EditText")
input.send_keys("10")

6、find_elements_by_class_name()
当页面的class有多个值的时候,可以使用该方法,以向计算器上的输入框输入数字为例:

input=self.driver.find_elements_by_class_name("android.widget.EditText")
input[0].send_keys("10")

7、press_keycode()
该方法是发送键值,以下是部分键值,例如手机上的按键“0”它的键值是7,手机上的按键“1”,它的键值是8。若要了解更详细的android键值表,可以访问此链接:http://www.cnblogs.com/larack/p/4223465.html

image.png

以下是计算器计算10除以5的具体代码:

#输入10
self.driver.press_keycode(8)
self.driver.press_keycode(7)
#点击除号
element = self.driver.find_element_by_accessibility_id(u"除")
element.click()
#输入5
self.driver.press_keycode(12)
#点击=号
equal = self.driver.find_element_by_id("equal")
equal.click()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,387评论 25 708
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,535评论 0 17
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,567评论 2 45
  • 今天很累但很充实,看到瘦小的她马不停蹄的忙,又些带动自己前近,跨年愉快!
    melody静阅读 183评论 0 0
  • 内存百家姓, 当年政府令。 如今又放开, 历史背景订。
    草原骑手阅读 237评论 0 0