• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
挽霜
博客园    首页    新随笔    联系   管理    订阅  订阅

Selenium 特殊元素的定位与操作

Web页面有很多特殊的元素  无法使用基本的元素定位方式定位,下面介绍几个特殊的元素定位

1、alert框

alert框只有一个确认按钮

BrowserUtil是一个封装好的浏览器启动类

BrowserUtil.driver.findElement(By.id("abtn")).click();

Thread.sleep(3000);

Alert alert = BrowserUtil.driver.switchTo().alert();

alert.accept(); //点击确认按钮

alert.dismiss();//弹框消失

2、confirm框

 confirm框有确定和取消按钮

Alert alert = BrowserUtil.driver.switchTo().alert();

alert.accept(); //点击确定按钮

alert.dismiss();//点击取消按钮

confirm框和alert框使用方法一样

3、div类型的弹框

 

4、Iframe切换

如何确认定位的是元素是否存在iframe,例如在chrome浏览器检查元素时,以下2个标识可以确认是iframe

 iframe定位思路:

1)先定位到第一个元素

2)使用格式switchTo().frame()方法转到frame再定位

BrowserUtil.driver.switchTo().frame("bframe");

3)多层嵌套继续使用第2)条的方法

4)回到原来的第一个主页面中

BrowserUtil.driver.switchTo().defaultContent();

5、radio/checkbox 单选/复选框 

使用普通定位元素的方法就可以了,用click()方法点击,用isSelected()方法判断是否选中

复选框多选,定位多个元素依次点击就可以了

6、select 选择框

下拉选择框可以单选也可以多选,具体使用如下:

7、时间日期控件

1)时间控件支持输入框输入日期,按正常的元素定位sendKeys输入日期即可

2)时间控件输入不支持输入日期时,查看该元素可发现,该属性有readonly,只可读不可写,例如12306的时间控件

此时需要在Selenium里面执行javaScript代码,把该属性去掉后,再按照正常的元素定位方式,sendKeys输入日期,具体代码如下:
JavascriptExecutor javascriptExecutor = (JavascriptExecutor)BrowserUtil.driver;

javascriptExecutor.executeScript("document.getElementById('train_date').removeAttribute('readonly')");

在检查元素console控制台输入document.getElementById('train_date'),可以找到该输入框,removeAttribute('readonly')表示要移动该属性的readonly值,只时该输入框就可以输入日期了

注意: 因只读控件有默认的时间,需要先清除再输入日期,否则时间会重叠显示

 

 

 

 

8、JavaScript滚动元素到页面某一区域

代码如下:

JavascriptExecutor javascriptExecutor = (JavascriptExecutor)BrowserUtil.driver;
javascriptExecutor.executeScript("document.getElementById('index_ads').scrollIntoView()");

scrollIntoView()-->滚动到可视区域的最上方
scrollIntoView(0)-->滚动到可视区域的下方

 

9、通过参数的传递滚动

1)单个元素传递

 

 

 

2)多个元素传递

10、懒加载  页面有一部分元素默认没有加载出来

 

 

 

操作如下图

 

 

 

 

 

 

11、拖 拽

Actions鼠标事件还有很多其它的方法,可以依次试下

 

 

 

 12、文件上传

 先定位到文件上传按钮 元素 ,并输入文件路径

 

 

 

 

posted @ 2020-03-17 20:34  挽霜  阅读(994)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3