天天看點

Selenium自動化實作web自動化-1

架構搭建

基于maven+jdk8+junit5+seleium 建構 

驅動下載下傳

下載下傳位址 :http://chromedriver.storage.googleapis.com/index.html

Selenium自動化實作web自動化-1

基于目前 浏覽器的版本

測試demo

截圖方法:takesscreenshot接口是依賴于具體的浏覽器api操作的

執行

Selenium自動化實作web自動化-1

用列錄制

使用seleniumide 錄制

Selenium自動化實作web自動化-1

建立一個錄制project

Selenium自動化實作web自動化-1
Selenium自動化實作web自動化-1

輸入網站開始錄制,并在錄制的網頁上執行搜尋

Selenium自動化實作web自動化-1
Selenium自動化實作web自動化-1

錄制結果

當test越來越多時,可以将多個test歸類到suites中,suites就像小櫃子

建立項目時,ide會建立一個預設suite,并将第一個test添加到其中,你可以點選test,在下拉菜單中選中test suites進入suites管理界面

首先進入suites管理界面,點選`+`,提供名稱,然後單擊add:

将滑鼠懸停在`suite1`上,點選三個點彈出suites管理菜單:

可以對`suite1`進行管理,包括添加test,重命名,删除,設定,導出

Selenium自動化實作web自動化-1

導出的用例

用例的編寫

Selenium自動化實作web自動化-1

定位方法

執行分析:

driver的初始化,每個測試用例執行都可以通過這個一個方法獲得一個driver.get()打開一個網址

find_element(by.定位符,")

一個頁面還沒有完全加載完全,點選這個元素,發現這個元素是有問題的,元素找不到或者不可點選,等等,可以強行加sleep(不推薦)

每個元素定位的時候,都會去find_element查找一個元素,在這個時候,通常我們需要引入一個新的機制,這個機制叫做隐式等待,解決元素找不到的問題,在規定的時間内,自動的去等待元素的出現,元素找到了,但是狀态不對,不可點選也會報錯

等待方式

隐式等待:

設定一個等待時間輪詢(預設0.5s)查找 元素是否出現 (服務端)

driver.manage().timeouts().implicitlywait(5, timeunit.seconds);

顯式等待:

在用戶端本地每隔0.5s巡查下條件是否比對 需要 執行個體化 webdriverwait

在代碼中定義等待條件,當條件發生時才繼續執行代碼`webdriverwait`配合until()方法,根據判斷條件進行等待

程式每隔一段時間(預設為0.5秒)進行條件判斷,如果條件成立,則執行下一步,否則繼續等待,直到超過設定的最長時間

webdriverwait= new webdriverwait(driver,100l);

強制等待

線程等待,線程休眠一段時間,thread.sleep(2000)