本文緊接着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自動化測試框架-移動手機自動化測試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