如何选择这个文本区域?

Posted

技术标签:

【中文标题】如何选择这个文本区域?【英文标题】:How to select this textarea? 【发布时间】:2018-11-04 21:35:31 【问题描述】:

我需要使用 Selenium 将光标放在 textarea 元素中。该元素没有 ID。 我试过了:

eventDriver.findElement(By.cssSelector("textarea[class*=\"CodeMirror\"")).click();

它会抛出 NoSuchElementException

【问题讨论】:

【参考方案1】:

textarea 没有@class - 它是祖先div 的属性。请尝试以下代码:

eventDriver.findElement(By.cssSelector("div.CodeMirror textarea")).click();

或使用 ExplicitWait:

WebDriverWait wait = new WebDriverWait(eventDriver,10);

wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("div.CodeMirror textarea"))).click();

更新

WebElement element = eventDriver.findElement(By.cssSelector("div.CodeMirror textarea"))
javascriptExecutor jse = ((JavascriptExecutor)eventDriver);
jse.executeScript("arguments[0].click()", element);

【讨论】:

它抛出一个不同的异常:ElementNotInteractable。异常中的详细信息显示“元素 需要点击还是输入字符串? 是的,我两个都需要 新异常:预期条件失败:等待元素可点击:By.cssSelector: div.CodeMirror textarea(以 500 MILLISECONDS 间隔尝试 10 秒) 是否需要将 textarea 悬停以使其具有交互性?

以上是关于如何选择这个文本区域?的主要内容,如果未能解决你的问题,请参考以下文章

如何在文本区域标签中的特定光标位置插入选择标签下拉值作为文本片段?

jQuery:如何找到第一个可见的输入/选择/文本区域,不包括按钮?

如何在文本区域中显示数组内容?

让用户选择在文本区域中显示多少行 [HTML] [JAVASCRIPT?]

如何从 jquery 的文本区域中获取选定的文本? [复制]

如何使在文本区域中输入的文本对应于特定的单选按钮?