Selenium定位div彈框元素—使用JS代碼定位


了解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,不需要可以不加


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM