package playground; import com.google.common.util.concurrent.Uninterruptibles; import io.github.bonigarcia.wdm.WebDriverManager; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; import java.time.Duration; import java.util.List; public class DynamicTable { private WebDriver driver; @BeforeClass public void StartSession() { WebDriverManager.chromedriver().setup(); driver = new ChromeDriver(); driver.manage().window().maximize(); driver.get("http://localhost:3000/dynamictable"); } @AfterClass public void CloseSession() { Uninterruptibles.sleepUninterruptibly(Duration.ofSeconds(3)); driver.quit(); } @Test public void test01_verifyChromeCPULoad() { List columns = driver.findElements(By.xpath("//span[@role='columnheader']")); List rows = driver.findElements(By.xpath("//div[@role='row']")); rows.remove(0); int col_index = 0; String tableChromeCPU = ""; // Find CPU's column for (int i = 0; i < columns.size(); i++) { if (columns.get(i).getText().equals("CPU")) { col_index = i; break; } } // Find Chrome's row and retrieve the CPU Value for (int i = 0; i < rows.size(); i++) { if (rows.get(i).getText().contains("Chrome")) { tableChromeCPU = rows.get(i).findElements(By.tagName("span")).get(col_index).getText(); break; } } //System.out.println("Table Chrome Cpu is: " + tableChromeCPU); String box_value = driver.findElement(By.className("bg-warning")).getText(); // removing the : and " " String actualChromeCpu = box_value.split(":")[1].substring(1); System.out.println("Actual CPU LOAD: " + actualChromeCpu); Assert.assertEquals(tableChromeCPU, actualChromeCpu); } }