首页 > 其他 > 详细

实现selenium表单csv参数化

时间:2019-02-12 15:19:32      阅读:441      评论:0      收藏:0      [点我收藏+]

尝试编写一个selenium自动化测试,发现被测项目表单中的输入项过多,每次更改新的数据很麻烦,想实现用参数化的方式,但是不知道该如何实现,没有参与实战项目,不知道整体架构是什么样子的,自学中也只是小打小闹,在网上找了些资料,有的说封装,有的说利用文件获取方式,还有数据库啥的,本人真的很菜,看不懂,不能领会,而且基于java有些细节也是不懂。后来用CSV这种实现了,我也不知道完美的样子是什么,只是参照大神们的意见略更改了将就一下。

1、CSV实现      

 

 

public void getCsv(WebDriver driver) {
        JavascriptExecutor driver_js=(JavascriptExecutor) driver;
        try {
            List<String> allString = new ArrayList<>();
            BufferedReader reader = new BufferedReader(new FileReader("C:\\Users\\zq\\Desktop\\a.csv"));//读取文件
            reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉 
            String line = null;
            while((line=reader.readLine())!=null){
                String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分         
                String last = item[item.length-1];//取的csv中最后一列的数据
             // int value = Integer.parseInt(last);//如果是数值,可以转化为数值            
                allString.add(last);   //重新放入新的数组中,以便依次取参    
                
            }
            
            driver.findElement(By.id("preEndDateTime")).sendKeys(allString.get(0));//割接准备结束时间
             driver.findElement(By.id("startDateTime")).sendKeys(allString.get(1));//正式割接开始时间
             driver.findElement(By.id("endDateTime")).sendKeys(allString.get(2));//正式割接结束时间
             driver.findElement(By.xpath("//*[@id=‘initBody‘]/div[1]/section[2]/div[1]/form/div[5]/input")).sendKeys(allString.get(3));//总接口人
             driver.findElement(By.name("techLeader")).sendKeys(allString.get(4));//技术负责人
             driver.findElement(By.name("companies")).sendKeys(allString.get(5));//割接参与单位
             driver.findElement(By.xpath("//*[@id=‘initBody‘]/div[1]/section[2]/div[1]/form/div[11]/input")).sendKeys(allString.get(6));//会议名称
             driver.findElement(By.name("meetingDate")).sendKeys(allString.get(7));
             driver_js.executeScript("window.scrollTo(0,document.body.scrollHeight)");         
             driver.findElement(By.id("sealFile")).sendKeys(allString.get(8));//上传附件    
             driver.findElement(By.xpath("//*[@id=‘initBody‘]/div[1]/section[2]/div[1]/form/div[19]/div[1]/label[2]/img")).click();
             Runtime.getRuntime().exec(allString.get(9));
        } catch (Exception e) {
            
            e.printStackTrace();
        }
    }

 

 

 

 

2、csv文件数据

技术分享图片

 

实现selenium表单csv参数化

原文:https://www.cnblogs.com/snailvsstar/p/10365142.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!