zoukankan      html  css  js  c++  java
  • 列表翻页,选中目标记录

    说明:当添加一条记录时,该条记录在列表中的位置有多重情况,在列表的第一页第一项、在列表的最后一页最后一项、在列表中的任意一个位置,针对翻页选中一条目标记录具体事项一项两种情况

    情况一:新添加的记录在列表的任意一个位置时,选中该条记录并点击选择然后点击【更新产品】按钮

    具体实现代码如下(包含需要调用其他共方法):

     

    /**
     * 翻页逐条比较获得对应的产品
     * webs:某一页所有的tr对象,dr:dr对象
     */
    public static WebElement getpoduct(List<WebElement> wbs,WebDriver dr,By by){
    	int trNum=wbs.size();//获取某一页面中的所有tr对象个数
    	WebElement wb=null;
    	if(trNum>0){
    		for (int i = 0; i < trNum; i++) {
    		    wb=wbs.get(i);//获得tr对象
    			String id=wb.findElement(by).getText();//获取tr中某一列的值	
    			System.out.println("产品ID"+id);
    			if (i<trNum) {//在第一页范围内
    				if(id.equals("15")){
    					//dr.findElement(By.xpath("/html/body/div[2]/div/div[2]/div[2]/div[2]/table/tbody/tr[1]/td[1]/div/input")).click();
    					return wb;
    				}else {
    					wb=null;
    					continue;
    				}
    				
    			}else {//重新获取新一组tr对象进行循环比较
    				return null;
    				
    			}
    			
    		}	
    	}
    	return wb;
    }
    /**
     * java从字符串中提取数字
     * str:传递过来的字符串
     */
    public static List<String> getNUm(String str){
    	str.trim();
    	//String number=lNum.substring(3, 4);//直接获取传递过来的字符串中的数字(适用于字符串中仅仅包含一个数字)
    	List<String>  ss=new ArrayList<String>();
    	 for(String sss:str.replaceAll("[^0-9]", ",").split(",")){//首先把非数字的替换成“,”,然后用“,”把字符串分割成一个数组
             if (sss.length()>0)
                 ss.add(sss);
         }
    	return ss;
    }

     

    /**
    	 * 更新产品
    	 * 
    	 */
    	@Test(enabled=true)
    	public void upProduct(){
    		mj.jumpaccounts(dr);//触发一级菜单
    		mj.jumpaccountsT_1(dr);//触发二级菜单
    		toFram(dr, frameid);
    		
    		/**
    		 * 进入到修改产品界面
    		 */
    		
    		if(!isExist(dr, By.className("datagrid-cell-check"))){//无记录时添加新的记录
    			//addProduct();
    		}else {//有记录时执行修改操作(循环翻看每一页来获得需要修改的产品)
    			//翻页相关代码一:tr作为变量,进行循环找到对应的产品然后执行修改(新添加的记录不在最后一页或者第一页时)	
    		    //获得显示总页数的那串字符
    			String lNum=fFind(dr, By.xpath("/html/body/div[2]/div/div[3]/table")).findElement(By.xpath("/html/body/div[2]/div/div[3]/table/tbody/tr/td[8]/span")).getText();
    			String number=Demo.getNUm(lNum).get(0);//获取总页数
    			int number1=Integer.parseInt(number);//转换成int类型
    			//外层循环的是是否要翻页,某一页是否有相符合的项,里面在调用对比是否有复合项循环
    			for (int i = 1; i <= number1; i++) {
    		    List<WebElement> trs=dr.findElement(By.xpath("/html/body/div[2]/div/div[2]/div[2]/div[2]/table")).findElements(By.tagName("tr"));//获取每一页所有的tr对象   
    		    WebElement wbtr=Demo.getpoduct(trs,dr,By.className("datagrid-cell"));//获取具体的webElemnet对象(tr对象)
                if (wbtr!=null) {
                	if (!wbtr.isSelected()) {
                		wbtr.click();//返回对应的对象则点击选中
    				}else {
    					System.out.println("选中产品时出错");
    				}
    break; } else {//执行翻页操作 WebElement btn_next=fFind(dr, By.xpath("/html/body/div[2]/div/div[3]/table/tbody/tr/td[10]/a/span/span/span")); btn_next.click(); Demo.slp(3000); continue; } } String js="document.getElementById("updateproduct").click()"; exeJS(dr, js);//执行js,(点击修改产品按钮) Demo.slp(3000);

      

      

    情况二:新添加的记录在列表的最后一页的最后一个位置时,选中该条记录并点击选择然后点击【更新产品】按钮 

    具体实现代码如下(包含需要调用其他共方法):

    /**
     * java从字符串中提取数字
     * str:传递过来的字符串
     */
    public static List<String> getNUm(String str){
    	str.trim();
    	//String number=lNum.substring(3, 4);//直接获取传递过来的字符串中的数字(适用于字符串中仅仅包含一个数字)
    	List<String>  ss=new ArrayList<String>();
    	 for(String sss:str.replaceAll("[^0-9]", ",").split(",")){//首先把非数字的替换成“,”,然后用“,”把字符串分割成一个数组
             if (sss.length()>0)
                 ss.add(sss);
         }
    	return ss;
    }
    }
    

      

    /**
    	 * 更新产品
    	 * 
    	 */
    	@Test(enabled=true)
    	public void upProduct(){
    		mj.jumpaccounts(dr);//触发一级菜单
    		mj.jumpaccountsT_1(dr);//触发二级菜单
    		toFram(dr, frameid);
    		if(!isExist(dr, By.className("datagrid-cell-check"))){//无记录时添加新的记录
    			//addProduct();
    		}else {//有记录时执行修改操作(循环翻看每一页来获得需要修改的产品)
    			//翻页相关代码一:tr作为变量,进行循环找到对应的产品然后执行修改(新添加的记录在最后一页的最后一项时)	
    		    //获得显示总页数的那串字符
    			String lNum=fFind(dr, By.xpath("/html/body/div[2]/div/div[3]/table")).findElement(By.xpath("/html/body/div[2]/div/div[3]/table/tbody/tr/td[8]/span")).getText();
    			String number=Demo.getNUm(lNum).get(0);//获取总页数
    			int number1=Integer.parseInt(number);//转换成int类型
    			
    			//如果新添加的产品在第一页或者最后一页,则可以直接先翻到那页然后再进行对比找到需要修改的产品(添加的记录直接在第一页或者最后一页时)
    			if (number1>1) {//列表有多页时,且新添加的记录不在第一页时是在最后一页时,需要点击最后一页翻页
    				WebElement lastpag=fFind(dr, By.xpath("/html/body/div[2]/div/div[3]/table/tbody/tr/td[11]/a"));//点击最后一页翻页
    				lastpag.click();
    				Demo.slp(2000);
    				List<WebElement> trs1=fFind(dr, By.xpath("/html/body/div[2]/div/div[2]/div[2]/div[2]/table")).findElements(By.tagName("tr"));//获得最后一页所有的tr对象
    				int size=trs1.size();
    				int lastindex=size-1;//最后一条的索引
    				WebElement lastwb=trs1.get(lastindex);//获取该界面的最后一条元素
    				lastwb.click();
    				
    			}else {
    				//获取该界面的最后一条数据
    				List<WebElement> trs1=fFind(dr, By.xpath("/html/body/div[2]/div/div[2]/div[2]/div[2]/table")).findElements(By.tagName("tr"));//获得第一页所有的tr对象
    				int size=trs1.size();
    				int lastindex=size-1;//最后一条的索引
    				WebElement lastwb=trs1.get(lastindex);//获取该界面的最后一条元素
    				lastwb.click();
    
    			}
    			
    			String js="document.getElementById("updateproduct").click()";
    			exeJS(dr, js);//执行js,(点击修改产品按钮)
    		
    			Demo.slp(3000);
    					
    		}
    	}
    }
    

      

      

  • 相关阅读:
    Python入门学习笔记07(time)
    Python入门学习笔记01(常用数据类型)
    Python入门学习笔记04(生成器与迭代器)
    Python入门学习笔记05(内置函数)
    Python入门学习笔记 序
    Python入门学习笔记03(装饰器)
    Python入门学习笔记02(文件的打开、读写)
    Python入门学习笔记06(shelve模块)
    main参数
    [转]如何自动将c++程序接口封装供Python调用
  • 原文地址:https://www.cnblogs.com/baixiaozheng/p/5029739.html
Copyright © 2011-2022 走看看