一、环境搭建
电脑端(Windows系统):
1、安装Appium-Python-Client包,直接cmd窗口输入pip3 install Appium-Python-Client
2、确保安装匹配版本的selenium和appium,使用命令pip install selenium -U
3、安装Appium-windows,下载地址:http://appium.io/
4、安装jdk,使用命令java -version检查jdk是否安装成功
5、安装androidsdk,下载地址:
链接:https://pan.baidu.com/s/1xHDZU5nyLKb8aVtOwGr9zg
提取码:qgdq
把下载好的androidsdk.zip压缩包解压。
配置环境变量。
新建一个ANDROID_HOME系统变量,变量值为上一步的路径。
在path路径追加platform-tools路径
打开cmd窗口输入adb,出现下图所示表示配置成功
手机端:
真机有线:
1、用usb线连接到电脑,一头连手机,一头连电脑,usb连接方式选择传输文件
2、进入手机设置,找到版本号,不断点击版本号,直到提示已处于开发者模式
3、搜索开发者模式,在开发者模式中,启动usb调试 ,确认授权电脑端调试,这样appium才能驱动手机
4、在电脑上执行adb devices命令,查看连接的设备,不显示设备的话在电脑和手机上安装手机助手再查看
真机无线(adb无线连接功能)
1、先以usb有线连接方式连接到计算机
2、激活手机adb的无线服务(确保手机和电脑处于同一局域网)
在cmd命令行输入adb tcpip 5555
3、计算机以无线方式连接到手机
在cmd命令行输入adb connect 手机ip
4、连接成功后就可以拔掉有线了
安卓模拟器
1、下载模拟器并安装
下载一款安卓模拟器,夜神模拟器下载地址:https://www.yeshen.com/
2、打开模拟器应用
在开发者模式中打开usb调试
3、连接模拟器
在cmd命令行输入adb connect 127.0.0.1:62001
二、元素定位工具
1、Appium-windows自带的
点击启动appium
点击第1个图标
填写设备信息(需要与被测app保持会话才能定位元素),点击Start Session
2、weditor
安装
pip3 install weditor
启动
python -m weditor
运行
在弹出的浏览器(默认浏览器最好不要设置为IE,一般选择谷歌或火狐)页面点击上面的Connect按钮,元素定位工具会自动连接手机,并在上面安装ATX程序(远程服务),没有自动安装的话,执行:pip3 install --pre --upgrade uiautomator2,python -m uiautomator2 init,接下来就可以查看元素了,刷新页面可以点击Dump Hierarchy按钮,也可以将右侧按钮设置成实时状态,这样不需要每次手动刷新页面了。
注意:
运行代码时,需要在ATX程序点击停止UIAUTOMATOR
3、androidsdk中的uiautomatorviewer
点击uiautomatorviewer.bat打开
点击第2个图标,打开设备后就可以进行元素定位了
三、上代码
""自动化BOSSAPP
选择第一个搜索结果,点击进入详情,
获取职位名称下面的信息:地区、工作年限、学历"""from appium import webdriver
# 自动化环境配置信息
desired_caps = {
# 移动设备平台
'platformName': 'Android',
# 平台OS版本号,写整数位即可
'plathformVersion': '10',
# 设备的名称--值可以随便写
'deviceName': 'test0106',
# 提供被测app的信息-包名,入口信息:
# 1.打开被测app,2.命令行输入以下信息
# adb shell dumpsys activity recents | findstr intent={
'appPackage': 'com.hpbr.bosszhipin',
'appActivity': '.module.launcher.WelcomeActivity',
# 确保自动化之后不重置app
'noReset': True,
# 设置session的超时时间,单位秒,默认60s
'newCommandTimeout': 6000,
# 设置底层测试驱动-1.15默认使用的底层驱动就是UiAutomator2
'automationName': 'UiAutomator2', # 或者UiAutomator1
'skipServerInstallation': True # 跳过UI2的安装,如果第一次运行程序,不要添加该配置
}
# 创建驱动
driver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
driver.implicitly_wait(10) # 隐式等待
# 1.点击放大镜
ele = driver.find_elements_by_id('com.hpbr.bosszhipin:id/img_icon')[1]
ele.click()
# 2.在搜索框输入自动化测试
driver.find_element_by_id('com.hpbr.bosszhipin:id/et_search').send_keys('自动化测试')
# 3.点击第一个搜索结果
driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_filtered_name').click()
# 4.获取当前页面所有职位信息元素
job_msg = driver.find_elements_by_id('com.hpbr.bosszhipin:id/view_job_card')
for job in job_msg:
# 输出岗位名称
name = job.find_element_by_id('com.hpbr.bosszhipin:id/tv_position_name').text
# 输出薪资
salray = job.find_element_by_id('com.hpbr.bosszhipin:id/tv_salary_statue').text
# 输出公司名称
company = job.find_element_by_id('com.hpbr.bosszhipin:id/tv_company_name').text
# 5.点击进入详情
job.click()
# 6.获取职位名称下面的信息:地区、工作年限、学历
address = driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_required_location').text
work_years = driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_required_work_exp').text
education = driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_required_degree').text
print(f'{name}|{salray}|{company}|{address}|{work_years}|{education}')
driver.find_element_by_id('com.hpbr.bosszhipin:id/iv_back').click() # 回退到职位信息列表
driver.quit()