一、首先安裝Appium和所需要的所有環境
這裏所需要的所有軟件和環境,可以看我這篇博客。
https://blog.csdn.net/qq_43107323/article/details/105603681
二、模擬器安裝App並查看信息
1、先在模擬器或真機安裝Boss直聘的App
2、把App導出到電腦上面,一會連接的時候要用到上面的一些參數
3、用aapt命令查看App的信息和包名
命令aapt dump badging D:\BOSS直聘.apk這裏有2種方法:
1、可以在模擬器bin文件夾裏面用命令進行查看
2、在build-tools文件夾裏面進行用命令進行查看
三、把信息填到Appium的文本框裏並建立和模擬器的連接
1、上面的位置順序儘量不要打亂,不然會出問題,這裏有很多的坑,信息一定要仔細檢查不要填錯
2、用adb connect 127.0.0.1:62001建立adb的連接;我這裏用的夜神模擬器,所以端口號是62001,上面也是。
當出現上面的內容,就證明已經連接成功了;最後啓動會話,加載一會就連接上了。
四、編輯Python代碼
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,不然打不開這個文件。下圖就是成功的圖片。