package com.lambdatest.automation; import java.lang.reflect.Method; import java.net.MalformedURLException; import java.net.URL; import java.util.HashMap; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.JavascriptExecutor; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.ITestContext; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeSuite; import org.testng.annotations.Test; import org.openqa.selenium.chrome.ChromeOptions; import java.time.Duration; public class HiddenElementsDemo { public String username = "LT_USERNAME"; public String accesskey = "LT_ACCESS_KEY"; public static RemoteWebDriver driver; public String gridURL = "@hub.lambdatest.com/wd/hub"; boolean status = false; @BeforeMethod public void setup(Method m, ITestContext ctx) throws MalformedURLException { String hub = "@hub.lambdatest.com/wd/hub"; ChromeOptions browserOptions = new ChromeOptions(); browserOptions.setPlatformName("Windows 11"); browserOptions.setBrowserVersion("124.0"); HashMap<String, Object> ltOptions = new HashMap<String, Object>(); ltOptions.put("username", "LT_USERNAME"); ltOptions.put("accessKey", "LT_ACCESS_KEY"); ltOptions.put("project", "Untitled"); ltOptions.put("w3c", true); ltOptions.put("plugin", "java-testNG"); browserOptions.setCapability("LT:Options", ltOptions); try { driver = new RemoteWebDriver(new URL("https://" + username + ":" + accesskey + gridURL), browserOptions); } catch (MalformedURLException e) { System.out.println("Invalid grid URL"); } catch (Exception e) { System.out.println(e.getMessage()); } } @Test public void basicTest() throws InterruptedException { // navigating to the application under test driver.get("http://sripriyakulkarni.com/"); // maximize window driver.manage().window().maximize(); // explicit wait - to wait for the link to be click-able WebDriverWait wait =new WebDriverWait(driver, Duration.ofSeconds(30)); wait.until(ExpectedConditions .visibilityOfElementLocated(By.xpath("//span[normalize-space()='Automation Practice']"))).click(); // navigating to section of hidden element driver.findElement(By.xpath("//span[normalize-space()='Automation Practice']")).click(); Thread.sleep(1000); // Clicking on the Hide button driver.findElement(By.xpath("//input[@id='hide-textbox']")).click(); driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); JavascriptExecutor jse = (JavascriptExecutor) driver; WebElement element = driver.findElement(By.xpath("//input[@id='displayed-text']")); ((JavascriptExecutor) driver).executeScript("arguments[0].setAttribute('style','visibility:visible;');", element); jse.executeScript("document.getElementById('displayed-text').value='LambdaTest';"); driver.findElement(By.id("show-textbox")).click(); } @AfterMethod public void tearDown() { driver.quit(); } }