在實際測試項目中,會出現新增數據記錄不顯示在第一頁,而是顯示最後一頁,對於這種狀況,那咱們要根據每頁顯示數據數來進行翻頁,保證代碼可以準確拿到數據文原本作結果比對。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); }