硒 |影根 |键盘无法访问元素输入

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

使用 Selenium 4.1.2 / Java 11 和一个包含“shadow root”元素的页面我在处理特定输入文本元素时遇到问题。

通过这段代码,我到达了输入元素,光标在闪烁,但没有写入 sendKeys 字样:

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");

终端中的例外情况是:

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

到目前为止我还没有找到解决办法。有什么想法吗?

我觉得很奇怪光标找到它的元素但不写。

您也可以使用 JavascriptExecutor 来设置值。

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

或使用动作链:

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