Careeroza
Real World Example
Salesforce and Web Component Apps
CRM platforms like Salesforce Lightning and many design systems (Shoelace, Ionic, Material web components) are built from shadow DOM components. Service-company teams that test CRM projects use getShadowRoot() daily. A ShopEase checkout with a payment-method web component:
WebElement host = wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("shopease-payment-picker")));
SearchContext picker = host.getShadowRoot();
SearchContext upiCard = picker.findElement(By.cssSelector("payment-option[value='upi']")).getShadowRoot();
upiCard.findElement(By.cssSelector("input[type='radio']")).click();
WebElement upiLabel = driver.findElement(By.xpath("//label[text()='UPI ID']"));
driver.findElement(with(By.tagName("input")).toRightOf(upiLabel)).sendKeys("priya@okbank");
driver.findElement(By.id("place-order")).click();
System.out.println(wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("order-status"))).getText());Example
Output:
Run UpiCheckoutTest.main()Example output
Payment request sent to priya@okbank. Order ORD-1005 pending confirmation.
What You Have Learned
With waits, element handling, alerts, frames, windows, actions, JavaScript, screenshots, TestNG and data-driven tests, you can automate almost any page. The advance level organises all of this into a real framework: Page Object Model, parallel runs on Selenium Grid, reports and CI/CD.