selenium元素定位
2016-03-22 09:53
267 查看
自动化中,最重要的事情就是元素定位,selenium webdriver提供几种元素定位,
findElement() 方法返回一个元素, 如果没有找到,会抛出一个异常 NoElementFindException()
findElements()方法返回多个元素, 如果没有找到,会返回空数组, 不会抛出异常
如何选择 定位方法
策略是, 选择简单,稳定的定位方法。
1. 当页面元素有id属性的时候, 尽量使用id来定位。 没有的话,再选择其他定位方法
2. cssSelector 执行速度快, 推荐使用
3. 定位超链接的时候,可以考虑linkText或partialLinkText: 但是要注意的是 , 文本经常发生改变, 所以不推荐用
3. xpath 功能最强悍。 当时执行速度慢,因为需要查找整个DOM, 所以尽量少用。 实在没有办法的时候,才使用xpath
常用的定位页面元素方法如下, 按推荐排序
如何定位
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回元素句柄来定位元素findElement() 方法返回一个元素, 如果没有找到,会抛出一个异常 NoElementFindException()
findElements()方法返回多个元素, 如果没有找到,会返回空数组, 不会抛出异常
如何选择 定位方法
策略是, 选择简单,稳定的定位方法。
1. 当页面元素有id属性的时候, 尽量使用id来定位。 没有的话,再选择其他定位方法
2. cssSelector 执行速度快, 推荐使用
3. 定位超链接的时候,可以考虑linkText或partialLinkText: 但是要注意的是 , 文本经常发生改变, 所以不推荐用
3. xpath 功能最强悍。 当时执行速度慢,因为需要查找整个DOM, 所以尽量少用。 实在没有办法的时候,才使用xpath
常用的定位页面元素方法如下, 按推荐排序
定位方法 | Java语言实现实例 |
id 定位 | driver.findElement(By.id(“id的值”)); |
name定位 | driver.findElement(By.name(“name的值”)); |
链接的全部文字定位 | driver.findElement(By.linkText(“链接的全部文字”)); |
链接的部分文字定位 | driver.findElement(By.partialLinkText(“链接的部分文字”)); |
css 方式定位 | driver.findElement(By.cssSelector(“css表达式”)); |
xpath 方式定位 | driver.findElement(By.xpath(“xpath表达式”)); |
Class 名称定位 | driver.findElement(By.className(“class属性”)); |
TagName 标签名称定位 | driver.findElement(By.tagName(“标签名称”)); |
Jquery方式 | Js.executeScript(“return jQuery.find(“jquery表达式”)”) |
相关文章推荐
- AndroidManifest常见的设置解析
- Linux环境使用Python连接Microsoft SQL Server
- CAS(Central Authentication Service)——windows上简单搭建及测试
- 系统运维
- 微信公众帐号开发教程第17篇-应用实例之音乐搜索
- java.lang.IllegalArgumentException: column '_id' does not exist
- 彻底解决mysql中文乱码的办法
- 修改symfony php 上传文件限制
- Sql语句(关于基本表)
- iOS 静态库开发
- 集训队专题(10)1002 A Simple Problem with Integers
- linux软链接ln命令的用法
- Linux环境变量配置的三个方法--/etc/profile,~/.bashrc,shell
- linux系统下tomcat的启动
- 分享SVN的钩子代码[借鉴学习]pre-commit-post 钩子
- maven环境下spring4+mybatis3+mysql配置
- 密码技术
- Node.js文件操作方法汇总
- android developer官网不能打开怎么办
- iOS——去掉tableViewCell之间分割线左侧的空白,使分割线从左右边框开始