硒 |影根 |键盘无法访问元素输入
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();
使用 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();