架構搭建
基于maven+jdk8+junit5+seleium 建構
驅動下載下傳
下載下傳位址 :http://chromedriver.storage.googleapis.com/index.html
基于目前 浏覽器的版本
測試demo
截圖方法:takesscreenshot接口是依賴于具體的浏覽器api操作的
執行
用列錄制
使用seleniumide 錄制
建立一個錄制project
輸入網站開始錄制,并在錄制的網頁上執行搜尋
錄制結果
當test越來越多時,可以将多個test歸類到suites中,suites就像小櫃子
建立項目時,ide會建立一個預設suite,并将第一個test添加到其中,你可以點選test,在下拉菜單中選中test suites進入suites管理界面
首先進入suites管理界面,點選`+`,提供名稱,然後單擊add:
将滑鼠懸停在`suite1`上,點選三個點彈出suites管理菜單:
可以對`suite1`進行管理,包括添加test,重命名,删除,設定,導出
導出的用例
用例的編寫
定位方法
執行分析:
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)