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()