Selenium出來已經有很多年了,從最初的Selenium1到后來的Selenium2,也變得越來越成熟,而且也已經被很多公司廣泛使用。Selenium發展的過程中,分了很多模塊,這里我們主要介紹Webdriver,Webdriver已經被很多瀏覽器所兼容。WebDriver在自動化腳本和瀏覽器之間充當的角色和之前介紹的Appium很像。
由於現在很多的瀏覽器都已經主動支持和兼容了WebDriver,所以Webdriver在啟動后,會確認瀏覽器的native component是否存在可用而且版本匹配,接着就在目標瀏覽器里啟動使用Selenium自己設計定義的協議(WebDriver Wire Protocol),WebDriver Wire協議是通用的,也就是說不管是FirefoxDriver還是ChromeDriver等,啟動之后都會在某一個端口啟動基於這套協議的Web 服務,WebDriver Wire協議是一套基於RESTful的web服務。
在調用WebDriver的時候,實際上是給在瀏覽器上啟動的RESTful服務監聽端口上發送http請求,請求會以WebDriver Wire協議規定的JSON格式的字符串來告訴Selenium希望瀏覽器執行什么樣的操作。
Selenium和RobotFramework Selenium2Library庫介紹
通過http://www.seleniumhq.org/ 可以訪問Selenium官網。從該網站上可以下載到各種瀏覽器運行需要的Driver。


從http://www.seleniumhq.org/docs/ 地址可以查詢到關於Selenium的文檔和介紹等信息。

Open Browser和Close Browser
在Selenium2Library庫中,Open Browser關鍵字用來打開一個指定的瀏覽器,該關鍵字接收如下參數:
| 參數(Arguments) |
說明 |
| url |
瀏覽器中需要打開的url地址 |
| browser |
指定需要打開的瀏覽器類型,包括IE,Firefox,chrome,opera, safari等常用的瀏覽器,默認使用Firefox |
| alias |
設定的瀏覽器實例的別名,可以用於瀏覽器之間的切換,默認為None |
| remote_url |
是否啟用通過remote server的形式來訪問,默認為False |
| desired_capabilities |
可以指定的配置參數,默認為None |
| ff_profile_dir |
該參數主要針對火狐瀏覽器,可以通過該參數指定firefox profile路徑,默認為None |
Close Browser 關鍵字用來關閉一個已經打開的當前瀏覽器。
示例1:打開谷歌瀏覽器,url地址中輸入http://www.baidu.com
Open Browser http://www.baidu.com chrome
執行結果:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0002
20170529 15:22:55.284 : INFO : Opening browser 'chrome' to base url 'http://www.baidu.com'
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0002

示例2:打開IE瀏覽器,url地址中輸入http://www.baidu.com,然后關閉瀏覽器
Open Browser http://www.baidu.com ie
Close Browser
執行結果:
Starting test: RobotFrameworkTest1.TestSuite6.TestCase0001
20170529 15:31:01.937 : INFO : Opening browser 'ie' to base url 'http://www.baidu.com'
Ending test: RobotFrameworkTest1.TestSuite6.TestCase0001

另外在使用IE瀏覽器時,需要將瀏覽器選項中,安全標簽下的每個區域中是否啟用保護模式保持一致,要么全部啟用,要么全部不啟用,如下圖所示,不然的話容易出現類似WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enabled or disabled) for all zones.的報錯。

【原文歸作者所有,歡迎轉載,但是保留版權,並且轉載時,需要注明出處】
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
