有很多不同的軟體測試方法,除了手動測試之外,我們這裡介紹如何進行自動化測試:

測試工作坊後的Selenium補充內容

首先,我們先改一下,將close(),改為quit()

# 關閉瀏覽器
driver.**quit()**

接下來,不再使用python內建的sleep(),改用Explicit waits。

以下的範例是等待id為「mui-6」的元件可以被找到。

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# 等待一段時間讓頁面載入結果
wait = WebDriverWait(driver, timeout=3)
wait.until(EC.presence_of_element_located((By.ID, "mui-6")))

我們也採用python的try、finally,當元件有問題時,還是會把瀏覽器關閉

記得要內縮~
**try:**
    # 初始化 webdriver 並開啟瀏覽器
    options = webdriver.ChromeOptions()
    driver = webdriver.Chrome()
    driver.get("<https://dev.egroup-infocenter.com/login>")
**finally:**
    # 關閉瀏覽器
    driver.quit()

注意,有時候雖然元件已經呈現,但是,可能還不能點選 (如:被隱藏),就需要再等待一下:

    #點選設定
    wait.until(EC.presence_of_element_located((By.XPATH, "//*[@id='__next']/div/header/div[1]/div/span/div/button")))
    settings_button = driver.find_element(By.XPATH, "//*[@id='__next']/div/header/div[1]/div/span/div/button")
    #等待可點選時再點選
    **wait.until(EC.element_to_be_clickable(settings_button))**
    settings_button.click()

assert元件的屬性與style:

    assert dark_mode_button.**get_attribute("class")**=="MuiButtonBase-root css-1y0jul3", "in dark mode"
    assert body.**value_of_css_property("background-color")**=="rgba(255, 255, 255, 1)", "in dark mode"