基于python3的selenium線性化編程到二次封裝:登錄系統(tǒng)案例——隨筆

實(shí)例:登錄51job

part1:線性化編程

import...

#登陸51job

dr = webdriver.Chrome()

dr.implicitly_wait(20)

dr.get("https://www.51job.com/")

dr.maximize_window()

sleep(1)

#進(jìn)入登陸頁面

dr.find_element(By.LINK_TEXT,"登錄").click()

sleep(2)

#登錄系統(tǒng)

dr.find_element(By.CSS_SELECTOR,"#loginname.ef").send_keys("****")

sleep(0.5)

dr.find_element(By.CSS_SELECTOR,"#password").click()

dr.find_element(By.CSS_SELECTOR,"#password").send_keys("****")

sleep(0.5)

dr.find_element(By.ID,"login_btn").click()

sleep(1)

#斷言

actualResult = dr.find_element(By.CSS_SELECTOR,"#resumeurl").text

if actualResult =="編輯簡(jiǎn)歷":

print("pass")

else:

print("fail")

#退出系統(tǒng)

elem1 = dr.find_element(By.CSS_SELECTOR,".uname.e_icon.at")

elem2 = dr.find_element(By.CSS_SELECTOR,".e6.e_icon.last")

sleep(1)

Action1 = ActionChains(dr).move_to_element(elem1).perform()

sleep(1)

Action2 = ActionChains(dr).move_to_element(elem2).click().perform()

#關(guān)閉瀏覽器

dr.quit()


part2:二次封裝

import...

from seleniumimport webdriver

from selenium.webdriver.common.byimport By

from selenium.webdriver.common.action_chainsimport ActionChains

from timeimport sleep

#基礎(chǔ)頁面

dr = webdriver.Chrome()

dr.implicitly_wait(20)

#打開被測(cè)系統(tǒng)

dr.get("https://www.51job.com/")

dr.maximize_window()

sleep(1)

#封裝元素查找的方法

def find_elemnt(*loc):

return dr.find_element(*loc)

#頁面的操作元素

#定位器:確定定位方式

#首頁登錄按鈕

loginPage_loc = (By.LINK_TEXT,"登錄")

userName_loc = (By.CSS_SELECTOR,"#loginname.ef")

passWord_loc = (By.CSS_SELECTOR,"#password")

loginBtn_loc = (By.ID,"login_btn")

assertText_loc = (By.CSS_SELECTOR,"#resumeurl")

logoutBtn_loc1 = (By.CSS_SELECTOR,".uname.e_icon.at")

logoutBtn_loc2 = (By.CSS_SELECTOR,".e6.e_icon.last")

#進(jìn)入登錄頁面

def click_loginPage(*loginPage_loc):

find_elemnt(*loginPage_loc).click()

#輸入用戶名

def input_userNam(*userName_loc):

find_elemnt(*userName_loc).send_keys("****")

#輸入密碼

def input_passWord(*passWord_loc):

find_elemnt(*passWord_loc).send_keys("****")

#點(diǎn)擊登錄

def click_loginBtn(*loginBtn_loc):

find_elemnt(*loginBtn_loc).click()

#獲取斷言信息

def getAssertText(*assertText_loc):

find_elemnt(*assertText_loc).text

#退出系統(tǒng)

def logOutSys(*logoutBtn_loc1):

find_elemnt(*logoutBtn1_loc)

def logoutBtn(logOutSys,*logoutBtn2_loc):

self.elm2 = find_elemnt(*logoutBtn2_loc)

self.action1 = ActionChains(dr).move_to_element(self.elem1).perform()

self.action2 = ActionChains(dr).move_to_element(self.elem2).click().perform()

#測(cè)試用例

if __name__=="__main__":

click_loginPage(*loginPage_loc)

input_userNam(*userName_loc)

sleep(0.5)

input_passWord(*passWord_loc)

sleep(0.5)

click_loginBtn(*loginBtn_loc)

sleep(1)

#斷言

? ? if getAssertText(*assertText_loc) =="編輯簡(jiǎn)歷":

print("pass")

else:

print("fail")

#退出

? ? logoutBtn(logOutSys,*logoutBtn2_loc)

sleep(1)

dr.quit()

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容