Selenium2+java+Eclipse-简单对象定位
来源:互联网 发布:微创软件 编辑:程序博客网 时间:2024/06/08 04:44
简单对象的定位
对象的定位是自动化测试的核心,要想操作一个对象,首先应该识别这个对象。一个对象会有各种的(属性),我们可以通过这个属性找到这对象,查看方式可通过各种浏览器。
Firefox:右键-使用firebug查看元素
Chrom:右键-审查元素
webdriver提供了一系列的对象定位方法,常用的有以下几种
· id
· name
· class name
· link text
· partial link text
· tag name
· xpath
· css selector
例如:WebElement username=driver.findElement(By.id(“username”));
相关方法网上资料很多,这里记录下练习过程中遇到的错误。
1.提示“Sytax error,insert “...VariableDeclaratorID”to complete FormalParameterList”
解决方法:没有添加main函数,加上即可
2.运行脚本时run as无Java Application选项
解决方法:同问题1,缺少main函数,在要运行的项目中选择一个类,添加一个主函数即可。
public static void main(String[] args) {
}
3.定位元素的xpath正确,却一直提示找不到元素(采用多个frame时)
解决方法:使用selenium IDE录制步骤发现,中间过程有切换到另外的frame,所以导致一直定位不到元素,需要切换到当前frame,找到当前frame的元素属性
4.定位元素的xpath正确,却一直提示找不到元素(没有切换frame时)图中第54行
解决方法:试了各种定位方法,改成css path后成功
5.登录按键刚开始使用的定位方法是by.id,提示“Session not found”
解决方法:使用selenium IDE录制步骤,获取录制的元素属性,对应改成by.xpath成功找到元素
6.提示“java.lang.IllegalMonitorStateException”
解决方法:将wait(5)改成Thread.sleep(50000);运行正常
该异常会在三种情况下抛出:
1>当前线程不含有当前对象的锁资源的时候,调用obj.wait()方法;
2>当前线程不含有当前对象的锁资源的时候,调用obj.notify()方法。
3>当前线程不含有当前对象的锁资源的时候,调用obj.notifyAll()方法。
7.使用List<WebElement>rows 时,总是提示“the type List is not generic:it cannot be parameterized with arguments<WebElement>”
解决方法:提示需导入List时选错错误,正确应导入import java.util.*;
总结:
l 对象定位首先从id,name,class属性入手
l 注意观察选择元素中间是否有切换frame,并且切换到子frame后要记得切换回来;
l 如果该元素只有一个属性,并且有多个元素都采用同一个属性值,则用xpath,css属性定位;
l 以上实验后如还是提示找不到该元素,则配合使用selenium IDE,录制该元素,获取该元素的属性值(by.xpath)。基本上就可以解决大部分的元素定位问题。
- Selenium2+java+Eclipse-简单对象定位
- Python-Selenium2做Web自动化测试(4)-对象的定位
- selenium2+webdriver+java利用firepath定位隐藏div中的问题
- Selenium2(webdirver)入门之三元素定位(Java版)
- Python-Selenium2做Web自动化测试(8)-定位一组对象以及层级定位
- 【自动化学习笔记】环境搭建Selenium2+Eclipse+Java+TestNG_(一)
- Python-Selenium2做Web自动化测试(9)-定位Frame中的对象、对话框处理
- selenium2 webdriver 简单使用
- selenium2 webdriver 简单使用
- Selenium2+Java环境搭建
- selenium2 java版
- Selenium2+java 环境搭建
- Selenium2(JAVA)环境搭建
- Selenium2: web元素定位方法笔记
- Selenium2自动化测试的元素定位
- Selenium2+python自动化7-xpath定位
- Java对象的访问定位
- Java对象的访问定位
- Glide使用
- 2016-12-03 redis设置初启动并执行缓存以及执行方法后再执行缓存
- Laravel框架学习笔记001
- ubuntu14.04+cuda7.5+caffe+cudnn7.5+anaconda+opencv 2.4.9系统整合(2016.12.3)
- 电话号码转化为联系人姓名
- Selenium2+java+Eclipse-简单对象定位
- 使用C#把发表的时间改为几个月,几天前,几小时前,几分钟前,或几秒前
- 118、119 pascal's triangle I、II---Array-LeetCode
- 游戏引擎觅真谛
- RecyclerView
- SDL_SetEventFilter函数
- 【NOIP2017】李电下棋
- unity 编译Apk报错
- 算法训练 删除数组零元素