Im trying to create an automated test for login page which uses shadow dom. Im using this approach, but so far I was unable to work it out: https://titusfortner.com/2021/11/22/shadow-dom-selenium.html
Here is the login page:
<nbc-input name="username" slot="input" value="" id="username" class="hydrated">
#shadow-root (open)
<slot name="element-before"></slot>
<input type="text">
<slot name="element-after"></slot>
</nbc-input>
Here is my java code:
WebElement element = driver.findElement(By.id("username"));
SearchContext shadowRoot = element.getShadowRoot();
WebElement shadowElement = shadowRoot.findElement(By.tagName("input"));
Im getting this error:
org.openqa.selenium.InvalidArgumentException: invalid argument: invalid locator
on line:
shadowRoot.findElement(By.tagName("input"));
Im using Selenium 4.3.0, Chrome version 103.0.5060.114, and Chromedriver version 103.0.5060.134.