Selenium | shadow root | Element input is not reachable by keyboard

1.5k Views Asked by At

With Selenium 4.1.2 / Java 11 and a page with "shadow root" elements I have a problem to address a specific input text element.

With this code I reach the input element, the curor is blinking but does not write the sendKeys words:

Thread.sleep(2000);
WebElement inputFIELD = (WebElement) ((JavascriptExecutor)driver).executeScript("return document.querySelector('#TextFieldTEXTFIELD').shadowRoot.querySelector('#vaadin-text-field-input-3 > slot:nth-child(2) > input')");
inputFIELD.sendKeys("test");

The exception to this in the terminal is this:

Exception in thread "main" org.openqa.selenium.ElementNotInteractableException: Element <input> is not reachable by keyboard

I have not found a solution to this so far. Any idea?

I find it strange the cursor find its element but does not write.

1

There are 1 best solutions below

0
On BEST ANSWER

You can use JavascriptExecutor to set the values as well.

//inputFIELD.sendKeys("test");
((JavascriptExecutor)driver).executeScript("arguments[0].setAttribute('value', 'test')", inputButton);

or using actions chain:

new Actions(driver).moveToElement(inputButton).sendKeys("test").build().perform();