獲取某個元素的text屬性值,與預期值進行對比和匹配。
練習場景:在百度登錄界面,不輸入賬號和密碼的情況下,點擊登錄,出現提示“請您填寫手機/郵箱/用戶名”,抓取該描述與需求文檔描述進行對比,如果匹配,測試通過,反之失敗。
具體代碼:
# coding=utf-8 import time from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(6) driver.get("http://www.baidu.com/") time.sleep(1) driver.find_element_by_xpath("//*[@id='u1']/a[8]").click() time.sleep(1) driver.find_element_by_xpath("//*[@title='用戶名登錄']").click() time.sleep(1) driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__submit']").click() time.sleep(1) # 斷言方法一 try: error_message = driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__error' and text()='請您輸入手機/郵箱/用戶名']").is_displayed() print("Test pass. the error message is display.") except Exception as e: print("Test fail.",format(e)) # 斷言方法二 error_mes = driver.find_element_by_xpath("//*[@id='TANGRAM__PSP_10__error']").text try: assert error_mes == u'請您輸入手機/郵箱/用戶名' print('Test pass.') except Exception as e: print("Test fail.",format(e))
總結:要獲取目標元素的text的值,需要定義一個目標元素element,然后通過element.text方法得到字符串,注意不是element.text(),這個方法是沒有帶小括號的。上面介紹了兩個方法,方法一是,直接把字段寫入Xpath表達式,如果通過該Xpath能定位到元素,說明這個錯誤字段已經在頁面顯示;方法二是它能夠給該目標元素節點,然后通過element.text得到值,在拿到的text值取和期待的結果去匹配。建議在自動化測試腳本開發中采用第二種方法。
參考文章:https://blog.csdn.net/u011541946/article/details/69945381