selenium初次接觸-1
10月30日
web自動化測試的兩種方式:模擬整個http客戶端(壓力測試,取代瀏覽器和人,直接和服務端進行交互),模擬用戶操作(功能測試,取代人)
selenium是自動化瀏覽器的工具包,可以用於各個方面:web測試自動化,日常的web操作
是web應用的源頭(瀏覽器)驅動應用
使用非常廣泛:主流瀏覽器廠商的支持
控制成本、提高效率
selenium工具包:RC(remote control server,selenium1);web driver (selenium 2、3),selenium IDE 圖形界面工具;
selenium Grid:可以用來在多臺機器上同時執行selenium自動測試,要執行的測試用例非常多,其中某些測試非常耗時
HTML
HTML是用戶創建網頁的標準標記語言
HTML是超文本標記語言(Hyper Text Markup Language)
HTML不是一種編程語言,而是一種標記語言(mark language)
是用來描述網頁的一種語言
是HTML頁面由HTML元素構建而成的
HTML元素由標簽表示‘
瀏覽器分析HTML從而呈現頁面的內容(渲染render)
HTML元素是用標簽來表示的:尖括號包圍元素名稱形成了html標簽,HTML標簽通常是成對出現的,比如<b>和</b>,標簽對中的第一個標簽是開始標簽,第二個標簽是結束標簽,有的標簽裏面可以包含其他的標簽,比如html,head、body等
HTML文檔:以<!DOCTYPE>聲明開頭,以<html>開始,以</html>結尾,可見部分內容在<body>和</body>之間
標題和段落
HTML標題:標題是通過<h1>-<h6>等標簽進行定義的,<h1>定義最大的標題,<h6>定義最小的標題
段落:<p>
html在線測試工具:http://www.w3school.com.cn/tiy/t.asp?f=html_intro
http://www.w3school.com.cn/html/html_headings.asp
HTML元素的屬性:屬性為HTML元素提供附件的信息
例子:HTML鏈接
由<a>標簽定義。鏈接的地址在href屬性中指定
<a href="http://www.w3school.com.cn/"
>Visit W3School</a>
屬性總是在HTML元素的開始標簽中規定,屬性總是以名稱/值對的形式出現,比如:name = “value”
一個元素可以有很多的屬性:<a id =‘baidulink‘ href="http://www.baidu.com" style = "color:red"> This is a link</a>
id 是非常特殊的屬性,它用來唯一的標誌這個元素
標準元素都有其規定的合法屬性
樣式(style)屬性:style屬性告訴瀏覽器,元素顯示的特點,比如說,背景色、前景色、字體、尺寸、縮進、上下左右間距等
style屬性提供了一種改變所有HTML元素的樣式的通用方法,
<tagname style:"property1:value1;property2:valuse2;">
<p style = "font-family:verdana;color:red">
一些常用的元素:img、table、div
WebDriver原理 :selenium WebDriver提供了web自動化的各種語言調用接口庫,通過各種瀏覽器的驅動(web drive)來驅動瀏覽器
可以有多個子屬性和值,屬性之間用;隔開,包括很多控制顯示特性的:背景顏色,字體、顏色和尺寸,文本對齊
版本與支持
selenium WebDriver 包括selenium 2 和selenium 3:調用接口幾乎沒有區別,selenium2 是selenium組織幫各種瀏覽器寫web driver的,selenium3 裏面的web driver是由各個瀏覽器廠商自己提供的,selenium3 的自動化效率更高
selenium WebDriver支持的瀏覽器眾多
安裝:
客戶端庫的安裝:支持各種語言:java 、csharp、python、ruby、php、js、perl,python:pip install selenium (python安裝:https://github.com/jcyrss/songqin-testdev/blob/master/python/python_install.md)
各瀏覽器driver:下載最新瀏覽器
一個例子
百度輸入 博客園 ,進行搜索
WebDriver 實例對象
WebElement 實例對象
find_element_by_XXX 查找對象
重點:找到元素(根據瀏覽器deverlop tool查看元素id),操作元素
代碼
form selenium import webdirver
#指定是chrome的驅動
#執行到這裏的時候Selenium會去到指定的路徑將chrome dirver 程序運行起來
driver = webdriver.Chrome(r"d:\chromedriver.exe路徑”)
#get方法打開指定網址
driver.get(‘http://www.baidu.com‘)
#查找到那個搜索輸入欄網頁元素,返回一個表示該元素的WebElement對象
element_keyword = driver.find_element_by_id(‘‘kw")
#輸入字符
element_keyword.send_keys(u‘博客園‘)
#找到搜索按鈕
element_search_button = driver.find_element_by_id(“su”)
#點擊該元素
element_search_button.click()
#********************************************
import time
time.sleep(2) 加上時間,因為瀏覽器運行需要時間,程序的執行較快,可能頁面加載不出來造成找不到匹配頁面
ret = driver.find_element_by_id(‘1‘)
print(ret.text)
if ret.text.startswitch(‘博客園-開發者的網上家園...‘):
print (‘測試通過’)
else:
print (‘測試不通過’)
#*****************************************************
#最後,driver.quit讓瀏覽器和驅動進程一起退出,不然會有好幾個實例一起運行
driver.quit()
Selenium 給了我們操作頁面的接口
UI自動化要素:模擬用戶的輸入,獲取檢查界面輸出的內容
selenium初次接觸-1