自動化測試Selenium篇-2(控件定位)

Selenium

1.Selenium簡介

Selenium是ThroughtWorks公司推出的強大的開源Web功能測試工具系列;支持多平臺、多瀏覽器、多語言去實現自動化測試。支持多種開發語言:ruby,python,java,perl,c#等,同時Selenium測試直接自動運行在瀏覽器中,支持的瀏覽器包括IE,Chrome和FireFox等

2.簡單腳本介紹

from selenium import webdriver #導入模塊
import time
brower = webdriver.Chrome() #將谷歌瀏覽器給brower變量
time.sleep(3)
brower.get("http://www.baidu.com")
time.sleep(3)
brower.find_element_by_id("kw").send_keys("selenium") #定位元素並賦值
time.sleep(3)
brower.find_element_by_id("su").click() #定位元素,點擊
time.sleep(3)
brower.quit() #徹底退出瀏覽器

注:一個控件有若干屬性id、name、xpath等,百度輸入框的id爲kw,搜索按鈕的id爲su

運行該腳本後,會自動使用Chrome瀏覽器打開百度首頁搜索selenium後關閉瀏覽器

3.控件元素定位

注意:不管使用哪種方式進行元素定位,必須保證頁面上該屬性的唯一性

3.1webdriver提供給的對象定位方法

  • id

  • name

  • class name

  • link text

  • partial link text

  • tag name

  • xpath

  • css selector

3.2栗子-百度輸入框的多種定位法

 

#coding=utf-8
from selenium import webdriver
import time
brower = webdriver.Chrome()
brower.get("http://www.baidu.com")
###百度輸入框的多種定位方式###
#通過id定位
brower.find_element_by_id("kw").send_keys("selenium")
#通過name定位
brower.find_element_by_name("wd").send_keys("selenium")
#通過tag name定位
brower.find_element_by_tag_name("input").send_keys("selenium")
#通過class name定位
brower.find_element_by_class_name("s_ipt").send_keys("selenium")
#通過css方式定位
brower.find_element_by_css_selector("#kw").send_keys("selenium")
#通過xpath定位
brower.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")
######
brower.find_element_by_id("su").click()
time.sleep(3)
brower.quit()

3.3多種定位方法

3.3.1id和name定位

id和name是非常常見的定位方式,大多數控件都有這兩個屬性,而且對控件的id和name命名時一般會取不同的名字

還是以百度輸入框爲例:

#通過id定位
brower.find_element_by_id("kw").send_keys("selenium")
#通過name定位
brower.find_element_by_name("wd").send_keys("selenium")

3.3.2tag name和class name定位

對於大多數控件,不單單隻有id和name兩個屬性,比如還有class name 和 tag name

tag name是指標籤名

#通過tag name定位
brower.find_element_by_tag_name("input").send_keys("selenium")
#通過class name定位
brower.find_element_by_class_name("s_ipt").send_keys("selenium")

3.3.3CSS定位

對於一個控件的CSS獲取可以使用Chrome的F12打開檢查模式,抓取到輸入框的標籤(可參考下列圖片)

 

#通過css方式定位
brower.find_element_by_css_selector("#kw").send_keys("selenium")

3.3.4XPath定位

XPath是一種在XML文檔中定位元素的語言。因爲HTML可以看作是XML的一種實現,所以selenium用戶可以使用這種方式在web應用中定位元素(具體獲取可參考下列圖片)

 

#通過xpath定位
brower.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")

3.3.5link text定位

在不是輸入框也不是按鈕的情況下,可能是文字連接,則可以通過link

定位百度首頁的新聞:

#coding=utf-8
from selenium import webdriver
import time
brower = webdriver.Chrome()
brower.get("http://www.baidu.com")
brower.find_element_by_link_text("新聞").click()
time.sleep(3)
brower.quit()

3.3.6Partial link text定位

部分鏈接定位

定位百度首頁的hao123:

#coding=utf-8
from selenium import webdriver
import time
brower = webdriver.Chrome()
brower.get("http://www.baidu.com")
brower.find_element_by_link_text("hao").click()
time.sleep(3)
brower.quit()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章