Skip to content

Commit 01ba02e

Browse files
committed
Handle search and check data in table
1 parent a3dfa54 commit 01ba02e

File tree

4 files changed

+80
-2
lines changed

4 files changed

+80
-2
lines changed

src/main/java/com/anhtester/keywords/WebUI.java

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,56 @@ public class WebUI {
2929
private static double STEP_TIME = ConfigData.STEP_TIME;
3030
private static int PAGE_LOAD_TIMEOUT = ConfigData.PAGE_LOAD_TIMEOUT;
3131

32+
@Step("Check data: {1} in Table by column {2}")
33+
public static void checkDataInTableByColumn_Contains(int column, String value, String columnName) {
34+
35+
LogUtils.info("\uD83D\uDFE2 Check data " + value + " in Table by column " + columnName);
36+
ExtentTestManager.logMessage(Status.INFO, "\uD83D\uDFE2 Check data " + value + " in Table by column " + columnName);
37+
38+
//Xác định số dòng của table sau khi search
39+
List<WebElement> row = DriverManager.getDriver().findElements(By.xpath("//table//tbody/tr"));
40+
int rowTotal = row.size(); //Lấy ra số dòng
41+
LogUtils.info("Số dòng tìm thấy: " + rowTotal);
42+
43+
//Duyệt từng dòng
44+
for (int i = 1; i <= rowTotal; i++) {
45+
WebElement elementCheck = DriverManager.getDriver().findElement(By.xpath("//table//tbody/tr[" + i + "]/td[" + column + "]"));
46+
47+
JavascriptExecutor js = (JavascriptExecutor) DriverManager.getDriver();
48+
js.executeScript("arguments[0].scrollIntoView(true);", elementCheck);
49+
50+
LogUtils.info(value + " - ");
51+
LogUtils.info(elementCheck.getText());
52+
Assert.assertTrue(elementCheck.getText().toUpperCase().contains(value.toUpperCase()), "Dòng số " + i + " không chứa giá trị tìm kiếm.");
53+
}
54+
55+
}
56+
57+
@Step("Check data: {1} in Table by column {2}")
58+
public static void checkDataInTableByColumn_Equals(int column, String value, String columnName) {
59+
60+
LogUtils.info("\uD83D\uDFE2 Check data " + value + " in Table by column " + columnName);
61+
ExtentTestManager.logMessage(Status.INFO, "\uD83D\uDFE2 Check data " + value + " in Table by column " + columnName);
62+
63+
//Xác định số dòng của table sau khi search
64+
List<WebElement> row = DriverManager.getDriver().findElements(By.xpath("//table//tbody/tr"));
65+
int rowTotal = row.size(); //Lấy ra số dòng
66+
LogUtils.info("Số dòng tìm thấy: " + rowTotal);
67+
68+
//Duyệt từng dòng
69+
for (int i = 1; i <= rowTotal; i++) {
70+
WebElement elementCheck = DriverManager.getDriver().findElement(By.xpath("//table//tbody/tr[" + i + "]/td[" + column + "]"));
71+
72+
JavascriptExecutor js = (JavascriptExecutor) DriverManager.getDriver();
73+
js.executeScript("arguments[0].scrollIntoView(true);", elementCheck);
74+
75+
System.out.print(value + " - ");
76+
LogUtils.info(elementCheck.getText());
77+
Assert.assertTrue(elementCheck.getText().toUpperCase().equals(value.toUpperCase()), "Dòng số " + i + " không chứa giá trị tìm kiếm.");
78+
}
79+
80+
}
81+
3282
public static void sleep(double second) {
3383
try {
3484
Thread.sleep((long) (1000 * second));
@@ -37,7 +87,7 @@ public static void sleep(double second) {
3787
}
3888
}
3989

40-
public static void uploadFileWithRobotClass(By elementFileForm, String filePath){
90+
public static void uploadFileWithRobotClass(By elementFileForm, String filePath) {
4191
//Click để mở form upload
4292
WebUI.clickElement(elementFileForm);
4393
WebUI.sleep(2);

src/test/java/com/anhtester/Bai26_PageObjectModel_Parallel/pages/CustomerPage.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,15 @@
22

33
import com.anhtester.drivers.DriverManager;
44
import com.anhtester.keywords.WebUI;
5+
import io.qameta.allure.Step;
56
import org.openqa.selenium.By;
7+
import org.openqa.selenium.JavascriptExecutor;
68
import org.openqa.selenium.Keys;
9+
import org.openqa.selenium.WebElement;
710
import org.testng.Assert;
811

12+
import java.util.List;
13+
914
import static com.anhtester.keywords.WebUI.*;
1015

1116
public class CustomerPage extends CommonPage {
@@ -83,6 +88,14 @@ public void enterDataAddNewCustomer(String customerName) {
8388
Assert.assertEquals(DriverManager.getDriver().findElement(alertMessage).getText().trim(), "Customer added successfully.", "\uD83D\uDC1E FAIL!! The content of alert message not match.");
8489
}
8590

91+
public void searchAndCheckDataInTable(int column, String data, String columnName){
92+
waitForPageLoaded();
93+
setText(inputSearchCustomer, data);
94+
sleep(2);
95+
waitForPageLoaded();
96+
WebUI.checkDataInTableByColumn_Contains(column, data, columnName);
97+
}
98+
8699
public void checkCustomerInTableList(String customerName) {
87100
waitForPageLoaded();
88101
clickElement(menuCustomers);

src/test/java/com/anhtester/common/BaseTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.anhtester.common;
22

3+
import com.anhtester.Bai26_PageObjectModel_Parallel.pages.CommonPage;
34
import com.anhtester.drivers.DriverManager;
45
import com.anhtester.helpers.CaptureHelper;
56
import com.anhtester.helpers.PropertiesHelper;
@@ -13,7 +14,7 @@
1314
import org.testng.annotations.*;
1415

1516
@Listeners(TestListener.class)
16-
public class BaseTest {
17+
public class BaseTest extends CommonPage {
1718

1819
@BeforeMethod
1920
@Parameters({"browser"})
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package com.anhtester.handle_Table;
2+
3+
import com.anhtester.common.BaseTest;
4+
import com.anhtester.keywords.WebUI;
5+
import org.testng.annotations.Test;
6+
7+
public class HandleTable extends BaseTest {
8+
@Test
9+
public void testSearchDataInTable(){
10+
getLoginPage().loginCRM("[email protected]", "123456");
11+
getDashboardPage().clickMenuCustomer();
12+
getCustomerPage().searchAndCheckDataInTable(3, "Anh Tester", "Company");
13+
}
14+
}

0 commit comments

Comments
 (0)