无法在 selenium 的 textarea 中输入文本

Posted

技术标签:

【中文标题】无法在 selenium 的 textarea 中输入文本【英文标题】:Can't input text in textarea on selenium 【发布时间】:2022-01-14 20:43:20 【问题描述】:

我想在这里输入文字(作为附件img)

已经尝试使用了,但是不行:

发送密钥 使用 sendkeys 时出现此错误 >> org.openqa.selenium.ElementNotInteractableException: element not interactable

参数(JS)

参数如下:

javascriptExecutor executor = (JavascriptExecutor) getDriver();
WebElement el = getDriver().findElement(element);
executor.executeScript("arguments[0].click();", el);
executor.executeScript("arguments[0].value='"+ word +"';", el);

元素 [1]:https://i.stack.imgur.com/QOa0F.png

html 结构

<div class="col-sm-12 form-group"><div class="wrapper">note</div><textarea name="note" class="form-control" placeholder="Notes" data-testid="input-notes-on-create"></textarea></div>

定位器

By.cssSelector("div.col-md-7 form div.form-group:nth-child(3) > textarea.form-control");

By.xpath("//button[@data-testid='input-notes-on-create']");

知道为什么会这样吗?提前致谢。

【问题讨论】:

你为什么使用 executor 而不是 sendKeys ? 使用 sendkeys 时出现此错误 >> org.openqa.selenium.ElementNotInteractableException: element not interactable 请添加html 更新了描述 查找元素的定位器是什么> 【参考方案1】:
executor.executeScript("arguments[0].value='"+ word +"';", el);

您正在设置属性值,但我不确定这种格式,所以请尝试添加ExplicitWait 和以下设置属性值的方式。

WebDriverWait wait = new WebDriverWait(driver, 15);
JavascriptExecutor js = (JavascriptExecutor) driver;
WebElement text = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//button[@data-testid='input-notes-on-create']")));
js.executeScript("arguments[0].setAttribute('value', '" + word + "')", text);

【讨论】:

以上是关于无法在 selenium 的 textarea 中输入文本的主要内容,如果未能解决你的问题,请参考以下文章

求助怎样在selenium测试脚本里面为下面这段代码中的textarea赋值 ,就是我现在要对发帖功能测试.

selenium 操作文本框(textarea输入)

html 中的 Selenium 和 iframe

无法显示在 textarea 中输入的数据

文本选择和替换在 textarea 中无法正常工作

同时在文本字段中输入时无法更新 TextArea