溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python編程如何使用selenium進(jìn)行編寫

發(fā)布時(shí)間:2021-10-09 11:25:31 來源:億速云 閱讀:186 作者:柒染 欄目:開發(fā)技術(shù)

python編程如何使用selenium進(jìn)行編寫,針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡單易行的方法。

from selenium import webdriver 
class TestBaiDu():
    def setup(self):
        self.driver=webdriver.Chrome() 
        self.driver.maximize_window()
        self.driver.implicitly_wait(5)   
    def teardown(self):
        self.driver.quit()  
    def test_baidu(self):     	
        self.driver.get("https://www.baidu.com/")
        self.driver.find_element_by_css_selector("area").click()        
        handle=self.driver.window_handles
        self.driver.switch_to.window(handle[-1]) 
        el=self.driver.find_element_by_class_name('t')
        el.click()
              assert '百度熱搜 官方'==el.text

示例代碼是使用pytest+selenium寫的一個(gè)簡單的測(cè)試用例,該用例主要實(shí)現(xiàn)以下操作:
第一步:打開百度
第二步:點(diǎn)擊頁面的百度圖標(biāo),
第三步:切換另一窗口
第四步:找到“官方熱搜”,并點(diǎn)擊
第五步:進(jìn)行斷言

通過示例代碼,我們要知道,使用pytest+selenium編寫測(cè)試用例的話,需要有以下四個(gè)關(guān)鍵要素:

1. 導(dǎo)入依賴

from selenium import webdriver #導(dǎo)入依賴

使用這條代碼,將我們要使用的依賴導(dǎo)入。

在上文Selenium介紹及安裝部署中我介紹了selenium的原理,我們需要使用webdriver去驅(qū)動(dòng)不同的瀏覽器,所以當(dāng)我們使用selenium編寫測(cè)試用例時(shí)一定要導(dǎo)入webdriver。

2. 創(chuàng)建driver

def setup(self):
	self.driver=webdriver.Chrome()  #聲明一個(gè)chrome的webdriver
	self.driver.maximize_window()   #將瀏覽器窗口最大化
	self.driver.implicitly_wait(5)  #隱式等待

示例代碼中,我們使用setup()teardown()分別完成用例執(zhí)行前操作和用例執(zhí)行后操作。在測(cè)試用例執(zhí)行前,我們需要根據(jù)瀏覽器的種類的來聲明的driver,因此我們?cè)?code>setup()中使用self.driver=webdriver.Chrome()聲明一個(gè)chrome的驅(qū)動(dòng)。

如上圖所示,selenium也支持其他類型的瀏覽器驅(qū)動(dòng),大家可以根據(jù)自己的需求進(jìn)行使用。

3. 執(zhí)行自動(dòng)化步驟

def test_baidu(self):    	
	self.driver.get("https://www.baidu.com/") #打開URL
	self.driver.find_element_by_css_selector("area").click() #定位元素并點(diǎn)擊	
	handle=self.driver.window_handles
	self.driver.switch_to.window(handle[-1]) #切換窗口	
	el=self.driver.find_element_by_class_name('t')
	el.click()

這里給大家介紹兩個(gè)常用的操作:
點(diǎn)擊:click()
當(dāng)定位到元素后,使用click()對(duì)元素進(jìn)行點(diǎn)擊。
例1:

find_element_by_id('kw').click()

輸入:send_keys()
當(dāng)定位到需要輸入內(nèi)容的元素后,使用send_keys()可以將我們想要輸入的內(nèi)容傳送給元素。
例2:

find_element_by_id('kw').send_keys("selenium")

4. 斷言

 assert '百度熱搜 官方'==el.text

測(cè)試用例運(yùn)行后,一般需要使用斷言來判斷用例是否和我們的預(yù)期結(jié)果一直,使用assert可以到達(dá)這一目的。

關(guān)于python編程如何使用selenium進(jìn)行編寫問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注億速云行業(yè)資訊頻道了解更多相關(guān)知識(shí)。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI