基于appnium+python+夜神模拟器的自动化
阅读原文时间:2023年07月09日阅读:4

首先搭好appnium环境!参考https://www.cnblogs.com/testlearn/p/11419797.html

1、安装夜神模拟器

下载安装夜神模拟器后,在cmd命令输入adb connect 127.0.0.1:62001,显示出设备则表示连接成功

2、定位元素

打开安卓目录下,…\sdk\tools目录下面的uiautomatorviewer.bat文件;

打开 uiautomatorviewer 时若报错:Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncException: Remote object doesn't exist!

重新执行第1步即可

如上,左上角图标应该就是获取手机上当前页面的“元素”/app的信息,这两个属性 resource-id和class就是他对应的属性,可以通过这些属性来定位元素。

package为当前启动应用的包名,获取包名的另一种方式为:在CMD命令行输入adb shell  进入adb命令行模式

在adb命令行输入:logcat | grep ActivityManager   ;再启动应用,找到关键字Displayed,关键字后面即为appPackage + appActivity

3、开始编码

# coding=utf-8

from appium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

appium服务监听地址

server = 'http://localhost:4723/wd/hub' # localhost为本机;4723为端口;/wd/hub可以看成是规定的默认地址

app启动参数

desired_caps = {
"platformName": "Android", # platformName:使用哪个移动操作系统平台;iOS,Android或FirefoxOS
"deviceName": "127.0.0.1:62001", # deviceName:使用的移动设备或模拟器的种类
"appPackage": "com.tencent.mm", # appPackage:你想运行的Android应用程序的Java包(仅限Android使用)
"appActivity": ".ui.LauncherUI" # 要从包中启动的Android活动的活动名称。(仅限Android使用)
}

驱动

driver = webdriver.Remote(server, desired_caps)
wait = WebDriverWait(driver, 30)

获取登录按钮

login_btn = wait.until(EC.presence_of_element_located((By.ID, "com.tencent.mm:id/edu")))

点击登录按钮

login_btn.click()

获取手机号文本框

phone_text = wait.until(EC.presence_of_element_located((By.ID, "com.tencent.mm:id/li")))

填写手机号文本框

phone_text.send_keys("12345678900")

手机扫一扫

移动阅读更方便

阿里云服务器
腾讯云服务器
七牛云服务器

你可能感兴趣的文章