这里所需要的所有软件和环境,可以看我这篇博客。
https://blog.csdn.net/qq_43107323/article/details/105603681
1、先在模拟器或真机安装Boss直聘的App
2、把App导出到电脑上面,一会连接的时候要用到上面的一些参数
3、用aapt命令查看App的信息和包名
命令aapt dump badging D:\BOSS直聘.apk这里有2种方法:
1、可以在模拟器bin文件夹里面用命令进行查看
2、在build-tools文件夹里面进行用命令进行查看
1、上面的位置顺序尽量不要打乱,不然会出问题,这里有很多的坑,信息一定要仔细检查不要填错
2、用adb connect 127.0.0.1:62001建立adb的连接;我这里用的夜神模拟器,所以端口号是62001,上面也是。
当出现上面的内容,就证明已经连接成功了;最后启动会话,加载一会就连接上了。
1、下载Appium-pythin-client库
2、下载 pytest和pytest-html库
3、编辑登录的代码
# 下载库 Appium-pythin-client
# 下载库 pytest和pytest-html
from appium.webdriver import Remote
import pytest
import time
app_info = {
"platformName": "Android",
"deviceName": "127.0.0.1:62001",
"appPackage": "com.hpbr.bosszhipin",
"appActivity": "com.hpbr.bosszhipin.module.launcher.WelcomeActivity",
"unicodkeyboard": "true",
"resetkeyboard": "true"
}
# 元素 id,xpath,android_uiatumator
# 定位搜索按钮 click_search()
def click_search(driver):
e = driver.find_element_by_xpath(
"//android.widget.RelativeLayout[@resource-id='com.hpbr.bosszhipin:id/main_toolbar']/android.widget.RelativeLayout[1]/android.widget.LinearLayout[1]/android.widget.RelativeLayout[2]/android.widget.ImageView[1]"
)
e.click()
def login(mobile, password):
'''
文档字符串
:param mobile: 手机号
:param password: 密码
:return:
'''
# 点击我要应聘按钮 从按钮元素里面获取
el1 = driver.find_element_by_id("com.hpbr.bosszhipin:id/btn_enter_geek")
el1.click()
# 定位使用账号+密码登录
el2 = driver.find_element_by_id("com.hpbr.bosszhipin:id/tv_password_login")
el2.click()
time.sleep(2)
# 定位输入手机号
el1 = driver.find_element_by_id("com.hpbr.bosszhipin:id/et_phone")
el1.send_keys(mobile)
time.sleep(1)
# 定位密码
el2 = driver.find_element_by_id("com.hpbr.bosszhipin:id/et_password")
el2.send_keys(password)
time.sleep(1)
el3 = driver.find_element_by_id("com.hpbr.bosszhipin:id/btn_login")
el3.click()
# 断言
# 自动结果对比
assert driver.find_element_by_xpath('//*[@text="请输入正确的手机号码"]')
# 生成测试报告
if __name__ == '__main__':
pytest.main(['--html=report/boss.html']) # 运行pytest命令。-- 收集用例并去运行用例
driver = Remote(command_executor='http://127.0.0.1:4723/wd/hub',
desired_capabilities=app_info)
# 智能等待
driver.implicitly_wait(16)
# 登录
login('1589xxxx89', 'xxx')
click_search(driver)
driver.find_element_by_id('com.hpbr.bosszhipin:id/et_search').send_keys("软件测试工程师")
time.sleep(2)
driver.find_element_by_id('com.hpbr.bosszhipin:id/tv_filtered_name').click()
# 获取职位
e = driver.find_element_by_id('com.hpbr.bosszhipin:id/view_job_card')
# 打印职位
print(e)
# 列表 如何一次性定位多个元素
for job in e:
job.click()
总结:
1、我这里用的是函数并进行了封装,上面包括了登录和发送邮件,代码比较灵活。
2、因为Appium的Xpath不能进行复制,所以这里用到了下面的工具
3、最坑的是第一次打开这个.bat文件没有Xpath元素,我还以为是我的工具出问题了,后来才知道默认的没有的,需要下载专门的jar文件替换之前的。
https://www.jianshu.com/p/14db2af600fb
大家可以参考这个链接进行下载这个jar文件并进行替换。
切记:这里必须先关闭Appium,不然打不开这个文件。下图就是成功的图片。