W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
腳本的開(kāi)頭我們引入了所有需要的模塊,單元測(cè)試是python內(nèi)置的類似?Java JUnit
?的模塊,提供了組織單元測(cè)試的框架。 ?selenium.webdriver
?模塊提供了?WebDriver
?的所有實(shí)現(xiàn): ?Firefox
?,?Ie
?,?Chrome
?,?Remote
?,?Keys
?類提供了鍵盤的代碼(回車,?ALT
?,?F1
?等等):
import unittest
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
測(cè)試用例類繼承了?unittest.TestCase
?類,這表明這個(gè)類是一個(gè)測(cè)試用例:
class PythonOrgSearch(unittest.TestCase):
?setUp
?函數(shù)進(jìn)行了初始化,你將要在這個(gè)類里編寫(xiě)的所有測(cè)試方法都要先調(diào)用這個(gè)方法,接著我們創(chuàng)建了一個(gè)?Firefox WebDriver
?實(shí)例:
def setUp(self):
self.driver = webdriver.Firefox()
接下來(lái)是測(cè)試用例的方法,它應(yīng)該總是以字符?'test'
?開(kāi)始. 方法的第一行 本地引用了 ?setUp
?方法中創(chuàng)建的?driver
?對(duì)象:
def test_search_in_python_org(self):
driver = self.driver
?driver.get
?方法會(huì)導(dǎo)向給定的URL的頁(yè)面,?WebDriver
?會(huì)等待頁(yè)面完全加載完(就是?onload
?函數(shù)被觸發(fā)了),才把程序的控制權(quán)交給你的測(cè)試或者腳本。 但是如果你的頁(yè)面用了太多的AJAX,那么這個(gè)機(jī)制就沒(méi)什么用了,因?yàn)樗恢理?yè)面到底是什么時(shí)候加載完。
driver.get("http://www.python.org")
下一行是個(gè)斷言,確認(rèn)頁(yè)面標(biāo)題里是否有?'Python'
?這個(gè)單詞:
self.assertIn("Python", driver.title)
?WebDriver
?提供了一系統(tǒng)類似于?find_element_by_*
?的方法來(lái)尋找頁(yè)面元素,例如,我們利用?find_element_by_name
?方法,通過(guò)元素的?name
?屬性來(lái)定位一個(gè)文本輸入框元素。 更詳細(xì)的尋找元素的方法可以參閱 第四章-元素定位:
elem = driver.find_element_by_name("q")
接著我們發(fā)送了一些字符,類似于用鍵盤直接輸入。特殊的鍵盤符我們可以導(dǎo)入?selenium.webdriver.common.keys
?,然后用?Keys
?類來(lái)表示:
elem.send_keys("pycon")
elem.send_keys(Keys.RETURN)
提交頁(yè)面之后我們應(yīng)該確認(rèn)一下是否有返回,為了確定有東西返回,我們?cè)谶@里下一個(gè)斷言:
assert "No results found." not in driver.page_source
最后瀏覽器窗口被關(guān)閉了,你也可以調(diào)用?quit
?方法來(lái)代替?close
?,區(qū)別在于?quit
?會(huì)退出整個(gè)瀏覽器,而?close
?只會(huì)關(guān)閉一個(gè)標(biāo)簽,但是如果瀏覽器只有一個(gè)標(biāo)簽,那么這兩個(gè)方法完全一樣,都會(huì)關(guān)閉整個(gè)瀏覽器。
driver.close()
最后一行是運(yùn)行測(cè)試套件的一些樣板代碼:
if __name__ == "__main__":
unittest.main()
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: