web自動化測試按步驟拆分,可以分為四步操作:定位元素,操作元素,獲取返回結果,斷言(返回結果與期望結果是否一致),最后自動出測試報告。
其中定位元素尤為關鍵,此篇是使用webdriver通過頁面各個元素的屬性值定位對象。
步驟:
一:環境準備
1.瀏覽器選擇:Firefox
2.安裝插件:Firebug和FirePath(設置》附加組件》搜索:輸入插件名稱》下載安裝后重啟瀏覽器)
3.安裝完成后,頁面右上角有個小爬蟲圖標
4.快速查看xpath插件:XPath Checker這個可下載,也可以不用下載
5.插件安裝完成后,點開附加組件》擴展,有firebug、firepath、xpath checker已經安裝完成
二:元素定位
通過firebug查看對象的屬性值,根據webdriver提供的元素定位方法,定位。
其中:selenium的webdriver提供了八種基本的元素定位方法,前面六種是通過元素的屬性來直接定位的,后面的xpath和css定位更加靈活。
1.通過id定位:find_element_by_id()
2.通過name定位:find_element_by_name()
3.通過class定位:find_element_by_class_name()
4.通過tag定位:find_element_by_tag_name()
5.通過link定位:find_element_by_link_name()
6.通過partial_link定位:find_element_by_partial_link_name() ?超鏈接名稱模糊匹配方式
7.通過xpath定位:find_element_by_xpath()
8.通過css定位:find_element_by_css_name()
通過xpath定位:
1.如果一個元素它既沒有id、name、class屬性也不是超鏈接,或者說它的屬性很多重復的,這個時候就可以用xpath解決
2.xpath是一種路徑語言,firepath插件查看一個元素的xpath,進行使用定位
通過css定位:
1.css是另外一種語法,比xpath更為簡潔,先學會如何用工具查看
2.打開FirePath插件選擇css,查看使用
實踐:
#coding=utf-8
# selenium的webdriver元素定位
from selenium import webdriver
import time
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
time.sleep(5)
driver.find_element_by_id("kw").send_keys("python")
time.sleep(3)
driver.find_element_by_id("kw").clear()
time.sleep(3)
#點擊百度首頁的超鏈接
driver.find_element_by_link_text("百度首頁").click()
time.sleep(3)
#點擊登錄按鈕
driver.find_element_by_xpath(".//*[@id='u1']/a[7]").click()
time.sleep(3)