1. 程式人生 > >RobotFramework自動化測試框架-Selenium Web自動化(三)關於在RobotFramework中如何使用Selenium很全的總結(下)

RobotFramework自動化測試框架-Selenium Web自動化(三)關於在RobotFramework中如何使用Selenium很全的總結(下)

本文緊接著RobotFramework自動化測試框架-Selenium Web自動化(二)關於在RobotFramework中如何使用Selenium很全的總結(上)繼續分享RobotFramework中如何使用Selenium進行自動化測試。

本文章節目錄:

1、Get Value

2、Get Webelements和Get Webelement

3、Get Window Titles

4、Go Back 和 Go To

5、Get List Items

6、Get Selected List Value

7、Select From List

本文作者:張永清,如果轉載請註明出處RobotFramework自動化測試框架-Selenium Web自動化(三)關於在RobotFramework中如何使用Selenium很全的總結(下),否則追求一切法律責任。

1、Get Value

Get Value 關鍵字用於獲取某個元素標籤對應的value屬性,該關鍵字接收[ locator ]這一個引數,locator可以通過id,name,xpath等都可以進行定位。

示例1:這裡我們以訪問部落格園的登入頁面為示例,我們這裡獲取登入按鈕對應的value,如下圖所示。

 

Open Browser       https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F      chrome

${value} Get Value      id=signin

log   ${value}

Close Browser             

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0012

20180728 13:34:51.578 :  INFO : Opening browser 'chrome' to base url 'https://passport.cnblogs.com/user/signin?ReturnUrl=https%3A%2F%2Fwww.cnblogs.com%2F'

20180728 13:35:00.116 :  INFO : get_attribute value

20180728 13:35:00.124 :  INFO : ${value} = 登 錄

20180728 13:35:00.125 :  INFO : 登 錄

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0012

2、Get Webelements和Get Webelement

Get Webelements 關鍵字用來獲取所有獲得的WebElement物件的列表,該關鍵字接收[ locator ]這一個引數,locator可以通過id,name,xpath等都可以進行定位。

Get Webelement關鍵字和Get Webelements很類似,只不過Get Webelement 只會返回匹配到的第一個WebElement物件。

示例1:訪問百度首頁,然後根據locator 為name=tj_trnews來獲取到可以匹配到的所有的WebElement物件的列表

Open Browser       http://www.baidu.com    chrome

${ement}       Get Webelements  name=tj_trnews

log   ${ement}      

Close Browser             

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0013

20180728 14:54:42.820 :  INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'

20180728 14:54:50.182 :  INFO : ${ement} = [<selenium.webdriver.remote.webelement.WebElement (session="47f749d3fcd2d5037a56e6ada80f38ba", element="0.8260127734608302-1")>]

20180728 14:54:50.183 :  INFO : [<selenium.webdriver.remote.webelement.WebElement (session="47f749d3fcd2d5037a56e6ada80f38ba", element="0.8260127734608302-1")>]

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0013

示例2:訪問百度首頁,然後根據locator 為name=tj_trnews來獲取匹配到的第一個WebElement物件

Open Browser       http://www.baidu.com    chrome

${ement}       Get Webelement   name=tj_trnews

log   ${ement}      

Close Browser             

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0014

20180728 15:01:58.469 :  INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'

20180728 15:02:07.093 :  INFO : ${ement} = <selenium.webdriver.remote.webelement.WebElement (session="0382b83b32515ea731a4497ab3699131", element="0.20523497043976824-1")>

20180728 15:02:07.094 :  INFO : <selenium.webdriver.remote.webelement.WebElement (session="0382b83b32515ea731a4497ab3699131", element="0.20523497043976824-1")>

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0014

3、Get Window Titles

Get Window Titles用來獲取當前已經開啟的瀏覽器視窗的所有Title。該關鍵字接收不需要接收任何的引數。

示例1:這裡我們開啟百度的首頁,然後點選首頁右上角的”新聞”連結按鈕,挑戰到百度新聞頁面,最後獲取該視窗下的所有Title。

Open Browser       http://www.baidu.com    chrome

Click Link     新聞      

${title1}  Get Window Titles      

log   ${title1} 

Close All Browsers             

執行結果如下:如下圖所示。

 

本文作者:張永清,如果轉載請註明出處RobotFramework自動化測試框架-Selenium Web自動化(三)關於在RobotFramework中如何使用Selenium很全的總結(下),否則追求一切法律責任。

4、Go Back 和 Go To

Go Back 和 Go To關鍵字分別用來模擬對瀏覽器進行後退和前進的操作。Go Back關鍵字不需要接收任何的引數,Go To關鍵字接收一個[ url ]引數。url是一個需要跳轉到的地址。

示例1:這裡我們首先訪問百度首頁,之後點選”新聞”連結,跳轉到百度新聞頁面,然後我們執行Go Back 回退到百度首頁,最後使用Go To跳轉到部落格園首頁,在每一個操作中,我們都記錄了瀏覽器的視窗標題。

Open Browser       http://www.baidu.com    chrome

Click Link     新聞      

${title1}  Get Window Titles      

log   ${title1} 

Go Back       

${title2}  Get Window Titles      

log   ${title2} 

Go To     https://www.cnblogs.com/    

${title3}  Get Window Titles      

log   ${title3} 

Close All Browsers             

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0016

20180728 15:26:17.443 :  INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'

20180728 15:26:24.906 :  INFO : Clicking link '新聞'.

20180728 15:26:27.947 :  INFO :

Altogether 1 item.

1: 百度新聞——全球最大的中文新聞平臺

20180728 15:26:27.948 :  INFO : ${title1} = [u'\u767e\u5ea6\u65b0\u95fb\u2014\u2014\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u65b0\u95fb\u5e73\u53f0']

20180728 15:26:27.949 :  INFO : [u'\u767e\u5ea6\u65b0\u95fb\u2014\u2014\u5168\u7403\u6700\u5927\u7684\u4e2d\u6587\u65b0\u95fb\u5e73\u53f0']

20180728 15:26:28.239 :  INFO :

Altogether 1 item.

1: 百度一下,你就知道

20180728 15:26:28.240 :  INFO : ${title2} = [u'\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053']

20180728 15:26:28.242 :  INFO : [u'\u767e\u5ea6\u4e00\u4e0b\uff0c\u4f60\u5c31\u77e5\u9053']

20180728 15:26:28.244 :  INFO : Opening url 'https://www.cnblogs.com/'

20180728 15:26:31.021 :  INFO :

Altogether 1 item.

1: 部落格園 - 開發者的網上家園

20180728 15:26:31.021 :  INFO : ${title3} = [u'\u535a\u5ba2\u56ed - \u5f00\u53d1\u8005\u7684\u7f51\u4e0a\u5bb6\u56ed']

20180728 15:26:31.022 :  INFO : [u'\u535a\u5ba2\u56ed - \u5f00\u53d1\u8005\u7684\u7f51\u4e0a\u5bb6\u56ed']

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0016

從執行的日誌可以很清楚的看到Go Back 和 Go To關鍵字在使用時起到的效果。

5、Get List Items

Get List Items關鍵字用來獲取獲取頁面中一個下拉列表中所有的下拉選項,關鍵字接收[ locator ]一個引數,locator可以通過id或者name等來進行元素定位。

示例1:我們以訪問百度貼吧中如下的下拉框為例來對該關鍵字的使用進行說明,如下圖所示。

 

Open Browser       http://tieba.baidu.com/f/search/adv?red_tag=u3387165643  chrome

@{Items}       Get List Items       name=sm

Close Browser             

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0023

20180728 23:27:16.635 :  INFO : Opening browser 'chrome' to base url 'http://tieba.baidu.com/f/search/adv?red_tag=u3387165643'

20180728 23:27:24.714 :  INFO : get_attribute multiple

20180728 23:27:24.878 :  INFO : @{Items} = [ 按時間倒序 | 按時間順序 | 按相關性排序 ]

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0023

6、Get Selected List Value

Get Selected List Value關鍵字用於獲取頁面中選中的一個下拉列表的Value值,關鍵字接收[ locator ]一個引數,locator可以通過id或者name等來進行元素定位。

示例1:這裡我們依然以訪問百度貼吧中如下的下拉框為例來對該關鍵字的使用進行說明,如下圖所示

 

Open Browser       http://tieba.baidu.com/f/search/adv?red_tag=u3387165643  chrome

${Value} Get Selected List Value      name=sm

log   ${Value}

Close Browser             

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0025

20180728 23:54:56.379 :  INFO : Opening browser 'chrome' to base url 'http://tieba.baidu.com/f/search/adv?red_tag=u3387165643'

20180728 23:55:05.545 :  INFO : get_attribute multiple

20180728 23:55:05.599 :  INFO : get_attribute value

20180728 23:55:05.609 :  INFO : ${Value} = 1

20180728 23:55:05.610 :  INFO : 1

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0025

從執行結果看,剛好與我們通過瀏覽器的開發工具看到的value值完全一致,如下圖所示。

 

 

 

7、Select From List

Select From List關鍵字用來模擬從指定的下拉列表中選擇指定的下拉列表選項,該關鍵字接收[ locator | *items ]多個引數,locator可以通過id,name來進行元素的定位,當列表中傳入多個值時,預設選擇最後一條,如果傳入的是一個空列表,那麼會預設選擇這個列表中的所有值。

本文作者:張永清,如果轉載請註明出處RobotFramework自動化測試框架-Selenium Web自動化(三)關於在RobotFramework中如何使用Selenium很全的總結(下),否則追求一切法律責任。

示例1:這裡我們繼續訪問百度貼吧,我們的目標是通過Select From List關鍵字選中 這個選項。我們通過瀏覽器的開發者工具可以看到

這個選項對應的value為2,所以我們在關鍵字的引數中傳入的引數為2,如下圖 所示。

Open Browser       http://tieba.baidu.com/f/search/adv?red_tag=u3387165643  chrome

Select From List   name=sm       2

sleep       5    

Close Browser          

 

執行結果如下:

Starting test: RobotFrameworkTest1.TestSuite6.TestCase0031

20180729 09:53:40.279 :  INFO : Opening browser 'chrome' to base url 'http://tieba.baidu.com/f/search/adv?red_tag=u3387165643'

20180729 09:53:49.543 :  INFO : Selecting option(s) '2' from list 'name=sm'.

20180729 09:53:49.582 :  INFO : get_attribute multiple

20180729 09:53:54.675 :  INFO : Slept 5 seconds

Ending test:   RobotFrameworkTest1.TestSuite6.TestCase0031

從實際執行的效果看,已經可以成功選中 這個列表,如下圖所示。

 

備註:本文內容摘選自作者自己出版的Robot Framework自動化測試框架核心指南  一書。

關於自動化測試的更多內容,請關注:


Robot Framework自動化測試框架核心指南京東官方購買
Robot Framework自動化測試框架核心指南電子版試讀
Robot Framework自動化測試框架核心指南天貓官方旗艦店購買
Robot Framework自動化測試框架核心指南噹噹網購買
Robot Framework自動化測試框架核心指南 作者簽名版本購買

相關博文彙總:

RobotFramework下的http介面自動化Create Http Context關鍵字的使用

 

RobotFramework下的http介面自動化Get關鍵字的使用

RobotFramework下的http介面自動化post關鍵字的使用

如何建立一個自動化測試專案

RobotFramework下的http介面自動化Get Response Body關鍵字的使用

RobotFramework下的http介面自動化Get Response Status 關鍵字的使用

RobotFramework下的http介面自動化Get Response header 關鍵字的使用

RobotFramework下的http介面自動化Set Request Header 關鍵字的使用

RobotFramework下HttpLibrary庫其它關鍵字

RobotFramework下的http介面自動化Set Request Body 關鍵字的使用

RobotFramework下的http介面自動化Follow Response關鍵字的使用

RobotFramework自動化測試框架的基礎關鍵字(一)

RobotFramework自動化測試框架的基礎關鍵字(二)

RobotFramework自動化測試框架的基礎關鍵字(三)

RobotFramework自動化測試框架的基礎關鍵字(四)

RobotFramework自動化測試框架的基礎關鍵字(五)

RobotFramework自動化測試框架-移動手機自動化測試AppiumLibrary介紹

RobotFramework自動化測試框架-移動手機自動化測試Open Application關鍵字的使用

RobotFramework自動化測試框架-常用斷言關鍵字

RobotFramework自動化測試框架-移動手機自動化測試AppiumLibrary庫其它的常見自動化關鍵字

RobotFramework自動化測試框架-移動手機自動化測試Input Text和Click Button關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Clear Text關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Click Element關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Click A Point關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Click Element At Coordinates關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Get Element Location關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Get Network Connection Status和Set Network Connection Status關鍵字的使用

RobotFramework自動化測試框架-移動手機自動化測試Element Attribute Should Match關鍵字的使用

RobotFramework自動化測試框架-DatabaseLibrary庫的使用(對資料庫的操作)

RobotFramework自動化測試框架-使用Python編寫自定義的RobotFramework Lib

RobotFramework自動化測試框架-Selenium Web自動化(-)-Open Browser和Close Browser

RobotFramework自動化測試框架-Selenium Web自動化(二)關於在RobotFramework中如何使用Selenium很全的總結(上)

RobotFramework自動化測試框架-MongoDBLibrary庫的