51Testing软件测试论坛
标题:
selenium的java问题
[打印本页]
作者:
yk718
时间:
2014-8-20 15:09
标题:
selenium的java问题
本帖最后由 yk718 于 2014-8-20 15:14 编辑
我想实现从数据库读取数据,读取后做相应操作。
但是每一个操作又可能失败,如元素未找到就失败了,失败后我想程序继续执行读取下一条数据,并继续执行操作。
目前情况是,如果中间有元素未找到,就停在那里了不继续往下执行了!!
public void read(String url,String database,String table) throws SQLException{
con=DriverManager.getConnection("jdbc:mysql://192.168.5.155:3306/"+database+"","root","123456");
Statement statement =con.createStatement();
Statement statement1 =con.createStatement();
ResultSet result=statement.executeQuery("SELECT * FROM "+table+"");
while(result.next()){
String Step=Integer.toString(result.getInt("Step"));
String KeyWord=result.getString("KeyWord");
String Data=result.getString("Data");
String Object=result.getString("Object");
String Object_by=Object.split(";")[0].toString();
String Object_Desc=Object.split(";")[1].toString();
System.out.println("Step:"+Step);
//******步骤关键字为input*******
if(KeyWord.equals("Input")){
//**对象为id
if(Object_by.equals("id")){
driver.findElement(By.id(Object_Desc)).sendKeys(Data);}
//**对象为xpath
else if(Object_by.equals("xpath")){
driver.findElement(By.xpath(Object_Desc)).sendKeys(Data);
}
}
//*******步骤关键字为Click*********
else if(KeyWord.equals("Click")){
//**对象为id
if(Object_by.equals("id")){
driver.findElement(By.id(Object_Desc)).click();
}
//**对象为xpath
else if(Object_by.equals("xpath")){
driver.findElement(By.xpath(Object_Desc)).click();
}
}
复制代码
作者:
joykao
时间:
2014-8-21 09:25
元素找不到直接报错停止执行后续操作,个人觉得其实挺好的,当然你可以根据错误的情况加入一些异常的处理,但是你的问题貌似是数据驱动的问题。。
可以把你的每一行的数据当作一个完整的用例,你想要的是用例之间相互不要依赖。那其实你可以做的其实还有很多,你可以想象怎样实现数据剥离,实现参数化,通过每次传入不同的参数来实现。个人觉得你可以先把数据读出来然后用dataprovider传参。。。把 测试方法和读取数据的方法分开。
作者:
yk718
时间:
2014-8-21 14:19
回复
2#
joykao
通过添加异常处理机制,已经解决问题!
版主,我想要的确实是用例之间不要相互依赖,但一行数据只表示一个操作,也不要相互依赖!
至于参数化,目前还没有考虑,感觉我目前的框架不好再剥离数据出来了,求解!!
作者:
joykao
时间:
2014-8-21 14:44
回复
3#
yk718
你目前的数据都是存在数据库的是吧。。。个人觉得你还是可以剥离的呀。。就是你可以先拿出来数据再存在一个地方。。。然后这些数据再用作参数来用,这样其实就分开了,而且你也很容易就知道到底是哪里出错了,到底是数据库数据的问题还是测试代码的问题应该很明了了
作者:
yk718
时间:
2014-8-21 15:08
回复
4#
joykao
嗯,元素和数据都存在数据库! 原则上还是可以再剥离的,就是分表嘛!
只不过现在还没有参数化的需求的,后面应该会用到。
祝版主早日转正!!
作者:
joykao
时间:
2014-8-21 15:22
回复
5#
yk718
作者:
jameswang1018
时间:
2014-8-22 15:25
建立一个自己的方法封装一下FindElement,在你自己的方法里catch NOSuchElementException异常就可以了。
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2