Appium+Python實現自動投遞Boss直聘簡歷

一、首先安裝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,不然打不開這個文件。下圖就是成功的圖片。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章