【问题标题】:Can't input text in textarea on selenium无法在 selenium 的 textarea 中输入文本
【发布时间】: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
  • 更新了描述
  • 查找元素的定位器是什么>

标签: java selenium automation selenium-chromedriver ui-automation


【解决方案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);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2016-03-27
    • 1970-01-01
    • 2013-11-22
    相关资源
    最近更新 更多