在Python中,pytest
是一個流行的單元測試框架,而Selenium
是一個用于自動化瀏覽器操作的工具。結合這兩者,我們可以編寫自動化測試腳本來驗證網頁的行為是否符合預期。下面是一個簡單的例子,展示了如何使用pytest
的斷言功能以及Selenium
的模擬操作。
首先,確保你已經安裝了必要的庫:
pip install pytest selenium
然后,創建一個名為 test_example.py
的文件,內容如下:
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By# 定義一個測試類,繼承自pytest的TestCase
class TestWebPage:# 初始化函數,設置瀏覽器驅動(這里使用Chrome作為例子)def setup_method(self):self.driver = webdriver.Chrome()# 清理函數,測試結束后關閉瀏覽器def teardown_method(self):self.driver.quit()# 定義一個測試函數,訪問網頁并檢查標題def test_page_title(self):# 打開網頁self.driver.get('http://example.com')# 使用斷言檢查頁面標題是否符合預期assert 'Example Domain' in self.driver.title# 定義另一個測試函數,模擬點擊按鈕并檢查頁面變化def test_button_click(self):# 打開網頁self.driver.get('http://example.com')# 找到頁面上的按鈕元素并點擊button = self.driver.find_element(By.ID, 'myButton')button.click()# 使用斷言檢查頁面上的某個元素是否出現assert 'Success' in self.driver.find_element(By.CLASS_NAME, 'success-message').text# 運行測試
if __name__ == "__main__":pytest.main(['-v', 'test_example.py'])
在這個例子中,我們創建了一個測試類 TestWebPage
,它包含了兩個測試方法:
-
test_page_title
:這個方法打開一個網頁,并使用assert
語句檢查頁面的標題是否包含預期的文本。 -
test_button_click
:這個方法同樣打開一個網頁,然后模擬點擊頁面上的一個按鈕,并檢查頁面上的某個元素是否顯示了預期的文本。
要運行這個測試,你可以直接運行 test_example.py
文件,或者在命令行中輸入 pytest -v test_example.py
。
請注意,這個例子中的 http://example.com
和按鈕的ID、類名都是假設的,你需要替換為你實際要測試的網頁和元素的屬性。此外,為了使用 selenium
,你需要下載相應瀏覽器的WebDriver,并將它的路徑添加到系統的PATH環境變量中,或者在你的腳本中指定其絕對路徑。