Selenium定位div弹框元素—使用JS代码定位

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

相关文档
最新文档