1. 程式人生 > >selenium初次接觸-1

selenium初次接觸-1

改變 前景 drive p s 客戶 工具包 獲取 背景 所有

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