本文實例講述了Selenium基本用法。分享給大家供大家參考,具體如下:
Selenium是一個用于Web應用程序測試的工具。Selenium測試直接運行在瀏覽器中,就像真正的用戶在操作一樣。支持的瀏覽器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。這個工具的主要功能包括:測試與瀏覽器的兼容性——測試你的應用程序看是否能夠很好得工作在不同瀏覽器和操作系統之上。測試系統功能——創建回歸測試檢驗軟件功能和用戶需求。支持自動錄制動作和自動生成 .Net、Java、Perl等不同語言的測試腳本。
安裝
pip install selenium
安裝驅動程序
下面介紹幾種主流瀏覽器的驅動程序下載地址:
瀏覽器 | 下載地址 |
---|---|
Chrome | https://sites.google.com/a/chromium.org/chromedriver/downloads |
Edge | https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/ |
Firefox | https://github.com/mozilla/geckodriver/releases |
Safari | https://webkit.org/blog/6900/webdriver-support-in-safari-10/ |
下面以windows環境,Chrome瀏覽器為例,我下載的是2.36版本的驅動chromedriver_win32.zip,解壓得到一個chromedriver.exe文件,將其放置在瀏覽器的安裝目錄之下,如圖所示:
selenium的簡單用法
如果你已經按照上面安裝了selenium,并且安裝了驅動程序,下面來簡單的玩一玩selenium:
from selenium.webdriver import Chromefrom selenium.webdriver.common.keys import Keys# 創建Chrome WebDriver實例,此路徑為驅動程序的路徑driver = Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe")# 加載URL網頁driver.get("http://www.baidu.com/")# 判斷標題中是否包含該字符串assert "百度一下" in driver.title# 查找id=kw的節點element = driver.find_element_by_id("kw")# 清空原有的輸入,輸入python進行搜索element.clear()element.send_keys("python")element.send_keys(Keys.RETURN)# 判斷是否有結果返回assert "No results found." not in driver.page_source# 關閉當前標簽,也可以使用quit()關閉瀏覽器driver.close()
上面的栗子,簡單介紹了一下selenium的用法,接下來將結合selenium與unittest來編寫測試:
import unittestfrom selenium.webdriver import Chromefrom selenium.webdriver.common.keys import Keys# 繼承至TestCase,表示這是一個測試用例類class BaiduCase(unittest.TestCase): # 初始化的一部分 def setUp(self): self.driver = Chrome("C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe") # 測試用例方法,名稱可以自定義,方法名稱始終以test開頭 def test_serch(self): self.driver.get("https://www.baidu.com/") assert "百度一下" in self.driver.title element = self.driver.find_element_by_id("kw") element.clear() element.send_keys("python") element.send_keys(Keys.RETURN) assert "No results found." not in self.driver.page_source # 在執行完各種測試用例方法之后會執行,為一個清理操作 def tearDown(self): self.driver.close()if __name__ == "__main__": unittest.main()
新聞熱點
疑難解答