无法在 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 中输入文本的主要内容,如果未能解决你的问题,请参考以下文章