在实际测试项目中,会出现新增数据记录不显示在第一页,而是显示最后一页,对于这种状况,那咱们要根据每页显示数据数来进行翻页,保证代码可以准确拿到数据文原本作结果比对。css
第一步:在基础类BaseTest中,写一个“翻页”方法getPageCountFlip()。java
代码以下:app
//若按主键排序,当数据大于 10条记录,即要翻页到尾页才能作后续操做,好比:删除 public void getPageCountFlip(WebDriver driver){ WebElement tableInfoElement = driver.findElement(By.cssSelector("#data_table_info .infos")); String pageText = tableInfoElement.getText(); System.out.println("pageText=====" + pageText); int index1 = pageText.indexOf("共"); int index2 = pageText.indexOf("条"); String pageStr = pageText.substring(index1 + 1, index2); if(Integer.valueOf(pageStr.trim())>10){ WebElement lastpage =driver.findElement(By.cssSelector("#data_table_paginate .pagination .last a")); lastpage.click(); } }
第二步:在测试case中,继承BaseTest基础类(extends BaseTest)。在要截图的地方调用“翻页”方法getPageCountFlip()。yii
代码以下:ide
//翻页 this.getPageCountFlip(driver);
实例:好比添加角色后,新增的记录显示在最后一页,要比对新增结果是否正确,则要先检查数据列表的数据是否大于10条记录,若是大于10条记录,则翻页到最后一页,再去比对新增结果是否正确。测试
注意:在翻页前,最好等待时间3秒,保证可以拿到正确的记录数。this
代码以下:code
@Test(description="添加角色") public void RoleCreateTest() { //登陆 YiiLogin yiiLogin = new YiiLogin(); yiiLogin.login(driver); //进入角色管理 YiiOpenRole openrole=new YiiOpenRole(); openrole.openrole(driver); //点击添加角色 YiiRoleCreate rolecreate=new YiiRoleCreate(); String code = rolecreate.rolecreate(driver); //刷新页面 // WebDriverWait menuwait = new WebDriverWait(driver,40); // WebElement menuopenNode = menuwait.until(new ExpectedCondition<WebElement>(){ // @Override // public WebElement apply(WebDriver d) { // WebElement menulastProject = driver.findElement(By.cssSelector("#admin-role-search-form")); // return menulastProject; // }}); //刷新页面等待时间5秒 try{ Thread.sleep(5000); } catch(Exception e){ e.printStackTrace(); } //翻页 getPageCountFlip(driver); //刷新页面,比对结果 witeForPageRefeshByText(driver, "#data_table > tbody", code,true); //添加角色完成后截图 this.screenshot("RoleCreate添加成功.jpg",driver); }