将密钥发送到 contentEditable div 在 Internet Explorer 中不起作用

sendKeys to contentEditable div not working in Internet Explorer

我在使用 Selenium WebDriver 中的 InternetExplorerDriver 时遇到问题。下图显示了 Sharepoint 网站的一部分,其中受众区域和位置作为字段,可以接受手动输入的输入或单击字段最右侧的按钮从弹出列表中进行选择。在下面的例子中,我在观众区手动输入了一个无效条目,在位置手动输入了一个有效条目。

contentEditable divs in IE

但是,当在 Selenium 中 运行ning 脚本时,sendKeys 命令对这些元素不起作用。根据 xpath,这些元素被识别为具有以下属性的 div:

<div id="AudienceArea_$containereditableRegion"
 class="ms-rtestate-write ms-taxonomy-writeableregion ms-inputBox ms-inputBoxActive"
 contenteditable="true"
 role="textbox"
 aria-autocomplete="both"
 aria-haspopup="true"
 aria-multiline="true"
 disableribboncommands="True"
 allowmultilines="false"
 restrictpastetotext="True"
 rtedirty="false">

最近尝试将文本发送到元素的代码如下:

    Webelement element = driver.findElement(By.xpath("//html/body/form/div[4]/div/div[1]/div/div[2]/div[2]/div[2]/table/tbody/tr/td/div/div/div/div/table/tbody/tr/td[1]/span/table[1]/tbody/tr[5]/td[2]/div/div[1]/div/div"));
    Actions actions = new Actions(driver);
    actions.moveToElement(element);
    actions.click();
    actions.sendKeys("SomeText");
    actions.build().perform();

当我在 Firefox 中 运行 时,它会识别元素并发送所需的文本。当我在 Internet Explorer 中尝试此操作时,它成功地识别了元素并执行了 sendKeys,但文本字段中没有显示任何内容。没有返回异常。

有没有人遇到过这样的事情?有没有办法解决这个问题,例如 sendKeys 的替代方法?

我运行使用 IE v11

正在使用 InternetExplorerDriver v2.53.1.0

点击后尝试setValue,

    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("arguments[0].textContent= arguments[1];", element,"SomeText");