Javascript 无法使用Selenium Webdriver访问Salesforce textarea

Javascript 无法使用Selenium Webdriver访问Salesforce textarea,javascript,html,selenium,selenium-webdriver,Javascript,Html,Selenium,Selenium Webdriver,Selenium Webdriver在尝试访问textarea时抛出元素不可见且无法与错误交互 1.文本区域位于一个弹出窗口内,我可以通过switchTo访问该窗口。我可以访问窗口中除文本区域以外的所有其他元素 2.我找不到任何可见性:元素的隐藏标记 我尝试了sleep命令、JavaScriptExecutor和XPath。这是我正在使用的代码 Set<String> handler = driver.getWindowHandles(); // get all window han

Selenium Webdriver在尝试访问textarea时抛出元素不可见且无法与错误交互

1.文本区域位于一个弹出窗口内,我可以通过switchTo访问该窗口。我可以访问窗口中除文本区域以外的所有其他元素

2.我找不到任何可见性:元素的隐藏标记

我尝试了sleep命令、JavaScriptExecutor和XPath。这是我正在使用的代码

Set<String> handler = driver.getWindowHandles(); // get all window handles
Iterator<String> iterators = handler.iterator();
while (iterators.hasNext()){
    subWindowHandler = iterators.next();
}
System.out.println(subWindowHandler);
driver.switchTo().window(subWindowHandler);
thread.sleep(5000);

driver.findElement(By.xpath("//div[@class='CodeMirror'] /div/textarea")).sendKeys("hello");

如何解决此错误?

问题是textarea的父元素的高度为0。在我的代码中,我使用JavascriptExecutor操作父元素的css,然后使用sendKeys方法

整个代码如下所示:

jsEditorOperation("x[0].firstChild.style.height='1px';");
driver.findElement(By.xpath("//div[@class=‌​'CodeMirror']/div/textarea")).sendKeys(text);
jsEditorOperation("x[0].firstChild.style.height='0px'; ");
其中,jsEditorOperation方法可用于访问CodeMirror javascript API,其代码为:

private Object jsEditorOperation(String code) {

    String script = "var x=document.getElementsByClassName('CodeMirror');" + code;
    JavascriptExecutor js = (JavascriptExecutor) DriverProvider.getInstance().getDriver();
    return js.executeScript(script);

}

尝试先使用WebDriverWait等待文本区域的可见性,如下所示:WebDriverWait wait=new WebDriverWaitdriver,30;wait.untilExpectedConditions.visibilityOfElementLocatedBy.xpath//div[@class='CodeMirror']/div/textarea;我尝试了WebDriverWait一分钟,但仍然无法访问元素。请提供弹出窗口的快照,其中包含您要填充的文本区域?