51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3570|回复: 6
打印 上一主题 下一主题

selenium的java问题

 关闭 [复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2014-8-20 15:09:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5测试积点
本帖最后由 yk718 于 2014-8-20 15:14 编辑

我想实现从数据库读取数据,读取后做相应操作。
但是每一个操作又可能失败,如元素未找到就失败了,失败后我想程序继续执行读取下一条数据,并继续执行操作。
目前情况是,如果中间有元素未找到,就停在那里了不继续往下执行了!!
  1. public void read(String url,String database,String table) throws SQLException{

  2.             con=DriverManager.getConnection("jdbc:mysql://192.168.5.155:3306/"+database+"","root","123456");
  3.             Statement statement =con.createStatement();
  4.             Statement statement1 =con.createStatement();
  5.             ResultSet result=statement.executeQuery("SELECT * FROM "+table+"");

  6.             while(result.next()){
  7.              String Step=Integer.toString(result.getInt("Step"));
  8.              String KeyWord=result.getString("KeyWord");
  9.              String Data=result.getString("Data");
  10.              String Object=result.getString("Object");
  11.              String Object_by=Object.split(";")[0].toString();
  12.              String Object_Desc=Object.split(";")[1].toString();
  13.              System.out.println("Step:"+Step);
  14.             
  15.              //******步骤关键字为input*******
  16.              if(KeyWord.equals("Input")){
  17.              //**对象为id
  18.              if(Object_by.equals("id")){
  19.              driver.findElement(By.id(Object_Desc)).sendKeys(Data);}
  20.              //**对象为xpath
  21.              else if(Object_by.equals("xpath")){
  22.              driver.findElement(By.xpath(Object_Desc)).sendKeys(Data);
  23.              }
  24.              }
  25.              //*******步骤关键字为Click*********
  26.              else if(KeyWord.equals("Click")){
  27.              //**对象为id
  28.              if(Object_by.equals("id")){
  29.              driver.findElement(By.id(Object_Desc)).click();
  30.              }
  31.              //**对象为xpath
  32.              else if(Object_by.equals("xpath")){
  33.              driver.findElement(By.xpath(Object_Desc)).click();
  34.              }
  35.              }
复制代码

附件: 您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    2#
    发表于 2014-8-21 09:25:53 | 只看该作者
    元素找不到直接报错停止执行后续操作,个人觉得其实挺好的,当然你可以根据错误的情况加入一些异常的处理,但是你的问题貌似是数据驱动的问题。。

    可以把你的每一行的数据当作一个完整的用例,你想要的是用例之间相互不要依赖。那其实你可以做的其实还有很多,你可以想象怎样实现数据剥离,实现参数化,通过每次传入不同的参数来实现。个人觉得你可以先把数据读出来然后用dataprovider传参。。。把 测试方法和读取数据的方法分开。
    回复

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2014-8-21 14:19:41 | 只看该作者
    回复 2# joykao
    通过添加异常处理机制,已经解决问题!
    版主,我想要的确实是用例之间不要相互依赖,但一行数据只表示一个操作,也不要相互依赖!
    至于参数化,目前还没有考虑,感觉我目前的框架不好再剥离数据出来了,求解!!
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    4#
    发表于 2014-8-21 14:44:52 | 只看该作者
    回复 3# yk718

    你目前的数据都是存在数据库的是吧。。。个人觉得你还是可以剥离的呀。。就是你可以先拿出来数据再存在一个地方。。。然后这些数据再用作参数来用,这样其实就分开了,而且你也很容易就知道到底是哪里出错了,到底是数据库数据的问题还是测试代码的问题应该很明了了
    回复

    使用道具 举报

    该用户从未签到

    5#
     楼主| 发表于 2014-8-21 15:08:17 | 只看该作者
    回复 4# joykao
    嗯,元素和数据都存在数据库!  原则上还是可以再剥离的,就是分表嘛!
    只不过现在还没有参数化的需求的,后面应该会用到。
    祝版主早日转正!!
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2020-12-8 11:20
  • 签到天数: 605 天

    连续签到: 1 天

    [LV.9]测试副司令

    6#
    发表于 2014-8-21 15:22:53 | 只看该作者
    回复 5# yk718


       
    回复

    使用道具 举报

    该用户从未签到

    7#
    发表于 2014-8-22 15:25:47 | 只看该作者
    建立一个自己的方法封装一下FindElement,在你自己的方法里catch NOSuchElementException异常就可以了。
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-24 01:14 , Processed in 0.072497 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表