前面文章,我們介紹了如何采用XPath表達式去定位網頁元素,在掌握了如何抓取或者如何書寫精確的XPath表達式后,我們可以開始寫自己的第一個真正意義上的webui 自動化測試腳本,就相當於,你在學習Python,如何在控制台打印Hello,Python! 一樣。
我們的測試用例是:打開百度首頁,搜索Selenium,然后檢查搜索列表,有沒有Selenium這個官網鏈接選項。
在寫自動化腳本之前,需要明確手動腳本的步驟,然后去拆分到具體沒一個步驟做什么,考慮好了之后,才開始動手去寫腳本。我把這個測試場景分拆如下步驟:
1) 啟動后瀏覽器,這里我們用Chrome
2) 打開百度首頁,https://www.baidu.com
3) 定位搜索輸入框,記錄下輸入框元素的xpath表達式://*[@id='kw']
4) 定位搜索提交按鈕(百度一下這個按鈕),獲取xpath表達式://*[@id='su']
5) 在搜索輸入框輸入“Selenium”,點擊百度一下這個按鈕。
6) 在搜索結果列表去判斷是否存在Selenium官網這個鏈接。
7) 退出瀏覽器,結束測試。
如果,還不會通過火狐瀏覽器上插件firepath獲取元素的表達式,請看上一篇文章。如果你沒有安裝Chrome,那就用Firefox。
1) 桌面新建一個記事本,命名並保存為FirstScript.py
2) 輸入如下代碼片段到FirstScript.py,保存
3) 打開cmd窗口,切換到桌面路徑下,然后通過python FirstScript.py 來執行腳本。
FirstScript.py腳本如下
# coding=utf-8
import time
from selenium import webdriver
driver = webdriver.Chrome() # 打開chrome,如果沒有安裝chrome,換成webdriver.Firefox()
driver.maximize_window() # 最大化瀏覽器窗口
driver.implicitly_wait(8) # 設置隱式時間等待
driver.get("https://www.baidu.com") # 地址欄輸入百度地址
driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium") # 搜索輸入框輸入Selenium
driver.find_element_by_xpath("//*[@id='su']").click() #點擊百度一下按鈕
# 導入time模塊,等待2秒
time.sleep(2)
# 這里通過元素XPath表達式來確定該元素顯示在結果列表,從而判斷Selenium官網這個鏈接顯示在結果列表。
# 這里采用了相對元素定位方法/../
# 通過selenium方法is_displayed() 來判斷我們的目標元素是否在頁面顯示。
driver.find_element_by_xpath("//div/h3/a[text()='官網']/../a/em[text()='Selenium']").is_displayed()
driver.quit()
第二種斷言寫法:
# coding=utf-8
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(8)
driver.get("https://www.baidu.com")
driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
driver.find_element_by_xpath("//*[@id='su']").click()
time.sleep(2)
# 第二個判斷方法
ele_string = driver.find_element_by_xpath("//div/h3/a[text()='官網']/../a").text
if (ele_string == u"Selenium - Web Browser Automation"):
print "測試成功,結果和預期結果匹配!"
driver.quit()
這里只利用 兩個等號(==)來判斷兩個字符串是否完全相同,有時候我們還需要對得到的字符串進行切割操作,才能進行去匹配,以后再介紹字符串切割處理在自動化測試結果判斷中的使用。
總結:自動化測試最難的在於如何去寫斷言,如何判斷測試結果是否通過。
建議: 以上代碼包括以后文章中腳本舉例,你還是最好去一行一行抄寫,不要直接復制、黏貼到你記事本中。因為,你在書寫腳本過程,肯定會犯一些語法和輸入錯誤,在調試腳本過程,通過觀察報錯信息,直到你解決問題,可以順利執行腳本,你會得到和收獲很多。
歡迎關注老王公眾號

