refert to https://stackoverflow.com/questions/56380091/how-to-interact-with-the-elements-within-shadow-root-open-while-clearing-brow
Demo :
@Test
public void demo() {
String path = this.getClass().getResource("/Html_Root.html").getPath();
open("file:///"+path);
WebDriver driver = driver ().getWebDriver ();
WebElement shadowHost = driver.findElement(By.cssSelector("div"));
WebElement shadowRoot = getShadowRoot(driver,shadowHost);
WebElement shadowTreeElement = shadowRoot.findElement(By.cssSelector("input"));
shadowTreeElement.clear ();
shadowTreeElement.sendKeys ( "123");
Assertions.assertEquals ("123",shadowTreeElement.getAttribute ("value"));
}
private static WebElement getShadowRoot(WebDriver driver,WebElement shadowHost) {
JavascriptExecutor js = (JavascriptExecutor) driver;
return (WebElement) js.executeScript("return arguments[0].shadowRoot", shadowHost);
}