appium实现一个软件的用户模拟登录——python版

在Android测试中最经常使用到的就是appium和selenium了
那么它们之间有什么区别呢?
1. selenium是web端的自动化
2. appium是app端的自动化
3. appium继承了webdriver,(也就是selenium)

今天我们使用的是appium
那么我们实现一个软件的模拟登录需要掌握哪些知识呢?

  1. 首先是启动软件
  2. 定位元素
  3. 模拟点击
  4. 输入帐号密码

这就是我们需要掌握的知识,下面我们来逐一学习一下:

启动软件

from appium import webdriver
import os
from time import sleep

desired_caps ={}
desired_caps['platformName'] = 'Android' #设备系统
desired_caps['platformVersion'] = '6.0' #设备系统版本
desired_caps['deviceName'] = 'Redmi Note 4X' #设备名称
desired_caps['device']='nikel' #设备号,dos下连接手机使用"adb devices -l"命令查看
desired_caps['appPackage']='com.xiaomi.smarthome' #包名
desired_caps['appActivity']='.SmartHomeMainActivity' #进程名
desired_caps['app'] = '/home/zhuohai/PycharmProjects/test/app/SmartHome_master_MiAppStore_60752_5.1.26_1370_debug.apk'
desired_caps['unicodeKeyboard'] = 'true' #使用 Unicode 输入法。
desired_caps['resetKeyboard'] = 'true'  #重置输入法到原有状态
driver = webdriver.Remote('http://localhost:4723/wd/hub', desired_caps)

在这里只是简单介绍了几个参数:如果想要了解更多可以参照
appium python app启动各参数详解

定位元素

对于定位元素的方法有三种
1. by_class_name
2. by_id
3. by_xpath
我们在获取以上三种元素用到的工具是UI Automator Viewer,该工具可以查看元素信息,或者也可以用appium来获取元素信息,但是在这里前两种是有缺陷的,元素定位选择第一是id,第二是class,第三,可能就是xpath。前面三=两种种方法都无法定位元素的时候,xpath就出现了,在我的工作中,我使用的xpath偏多,因为这个是绝对路径,定位的准确性高

ok = driver.find_element_by_id("com.xiaomi.smarthome:id/ok")# id定位

box = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/
android.widget.LinearLayout/
android.widget.FrameLayout/android.widget.LinearLayout/
android.widget.ScrollView/android.widget.LinearLayout/
android.widget.TextView[2]")# xpath定位

searchBox = driver.find_element_by_class_name('android.widget.Button')  #class_name定位

模拟点击:

方法:click()

我们在定位之后就可以通过该函数进行点击了:

ok.click()//其他使用一样

输入帐号密码:

方法:send_keys()

searchInputBox2 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/
                    android.widget.LinearLayout/android.widget.FrameLayout/
                    android.widget.FrameLayout/android.widget.ScrollView/
                    android.widget.LinearLayout/android.widget.LinearLayout[1]/
                    android.widget.LinearLayout/android.widget.LinearLayout/
                    android.widget.EditText")

searchInputBox2.send_keys("123456")

这样我们就完成了输入,最后点击登录就可以啦

这里需要注意的是:我们在启动软件和点击时,要sleep一小段时间,给点击和加载时间

你可能感兴趣的:(appium实现一个软件的用户模拟登录——python版)