了解div彈框特點:
1、div彈框按鈕和普通元素定位方式一樣;
2、定位到div彈框還得判斷這個彈框是否被隱藏,一般情況下div彈框都會有style=" display: none;"屬性;
3、如果div彈框出現display屬性就會隱藏,也就是說沒有display屬性 ,這時div彈框出現;
4、如果找到按鈕但定位不到,這時可以設置等待時間,等待頁面加載完成時再定位元素。
使用js方式判斷div彈框是否隱藏
/**
*1、寫一段js查找div彈框style屬性
*2、js 加return關鍵字在執行的時候可以返回結果
*/
String js = "return document.getElementsByClassName('el-message-box__wrapper')[0].style"; //執行js后得到的結果是List,所以將結果轉換為List List<Object> resultList = (List<Object>) ((JavascriptExecutor) driver).executeScript(js); //如果list.size()==1,就點擊彈框的按鈕(根據實際情況寫)
if(resultList.size()==1){ //如果有彈框定位"確定"按鈕,點擊確定 ele.findElementByXpathClick("//button[contains(@class,'el-button--primary')]", driver); Thread.sleep(3000); }else{ //....... }
一開始獲取不到js的結果,后面查資料可以加“return”獲取到結果
driver.executeScript(js):執行js代碼
如果不加return 執行js后返回值是null
如果加return 執行js后返回值有WebElement、Long、Double、bool、String、List
注:如果需要返回值就加return,不需要可以不加