selenium webdriver自動化測試啟動不同瀏覽器
- selenium webdriver 介紹
- Selenium WebDriver 進行自動化測試的一般流程
- 瀏覽器驅動下載
- 瀏覽器驅動的安裝
- chrome、edge、Firefox、Opera、Safari、phantomjs 應用
- Headless Chrome 、Headless Firefox 應用
selenium webdriver 介紹
Selenium WebDriver 是 Selenium 項目中的一個核心組件,它提供了跨多種瀏覽器的自動化測試能力。Selenium WebDriver 旨在替代之前的 Selenium RC (Remote Control) 模型,為開發人員和測試人員提供了更簡單、更高效的自動化測試解決方案。
Selenium WebDriver 主要特點如下:
-
跨瀏覽器支持:
Selenium WebDriver 支持主流瀏覽器,如 Chrome、Firefox、Safari、Edge 等,并且可以在不同的操作系統(Windows、macOS、Linux)上運行。 -
多語言支持:
Selenium WebDriver 提供了 Java、Python、C#、Ruby、JavaScript 等多種編程語言的 API,開發人員可以選擇熟悉的語言來編寫測試用例。 -
驅動程序架構:
Selenium WebDriver 采用驅動程序的架構,每種瀏覽器都需要對應的驅動程序(如 ChromeDriver、GeckoDriver 等)來控制瀏覽器的自動化操作。 -
API 豐富:
Selenium WebDriver 提供了大量的 API 供開發人員使用,可以執行各種Web元素定位、交互、導航、斷言等操作。 -
靈活性和可擴展性:
Selenium WebDriver 可以集成到各種測試框架和持續集成工具中,如 JUnit、pytest、Jenkins 等,提高了測試的靈活性和可維護性。 -
支持無頭瀏覽器:
Selenium WebDriver 除了支持傳統的有界面瀏覽器,還支持無頭瀏覽器(如 PhantomJS、Headless Chrome/Firefox),可以在無界面環境下進行自動化測試。
Selenium WebDriver 進行自動化測試的一般流程
- 安裝并配置好對應瀏覽器的驅動程序。
- 使用 WebDriver API 創建瀏覽器實例,并打開待測試的網頁。
- 定位頁面元素,并對這些元素執行各種操作,如輸入文本、點擊按鈕等。
- 對測試結果進行斷言驗證。
- 關閉瀏覽器實例,完成測試。
瀏覽器驅動下載
瀏覽器 | 驅動名稱 | 備注 |
---|---|---|
Chrome | chromedriver | 瀏覽器版本需要和驅動版本對應 |
Firefox | geckodriver | 瀏覽器版本需要和驅動版本對應 |
Edge | edgedriver | 瀏覽器版本需要和驅動版本對應 |
IE | IEdriverServer | 瀏覽器版本需要和驅動版本對應 |
safari | safariDriver | 自帶webdriver |
opera | operadriver | Opera基于Chromium開發 |
phantomjs | phantomjs | 無UI界面,2018年停止了開發和維護 |
瀏覽器驅動的安裝
1.下載對應瀏覽器驅動成功后
2.以ubuntu 為例,將下載后的驅動移動到 /usr/local/bin/ 目錄下
3.檢查瀏覽器驅動與瀏覽器版本是否一致
可以雙擊驅動程序,未出現閃退證明版本吻合
chrome、edge、Firefox、Opera、Safari、phantomjs 應用
from selenium import webdriverdef test_webdriver():driver = webdriver.Chrome()# driver=webdriver.Edge()# driver = webdriver.Firefox()# driver = webdriver.Opera()# driver = webdriver.Safari()# driver = webdriver.PhantomJS()# 需要訪問的地址driver.get("http://xxxx")# 對頁面進行操作driver.find_element_by_xpath("//a[@id='LoginLink']").click()# 運行結束關閉整個瀏覽器窗口driver.close()# 調用該函數
test_webdriver()
python xxxx.py 運行即可
Headless Chrome 、Headless Firefox 應用
Headless Chrome 是一種無界面的Chrome瀏覽器
Headless Firefox是一種無界面的Firefox瀏覽器
from selenium import webdriver
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.chrome.options import Optionsdef test_webdriver():options = Options()options.add_argument("--headless")driver = webdriver.Chrome(options=options)# driver = webdriver.Firefox(options=options)# 需要訪問的地址driver.get("http://xxx")# 對頁面進行操作driver.find_element_by_xpath("//a[@id='LoginLink']").click()# 運行結束關閉整個瀏覽器窗口driver.close()# 調用該函數
test_webdriver()