Python+Selenium練習(十九)-獲取元素上面的文字


  獲取某個元素的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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM