我在Selenium WebDriver中遇到了InternetExplorerDriver的问题。下图显示了Sharepoint站点的一部分,其中Audience Area和Location为字段,可以接受手动键入的输入,也可以在单击字段最右侧的按钮时从弹出列表中进行选择。在下面的示例中,我手动在“受众区域”中输入了无效条目,并在“位置”中输入了有效条目。
但是,在Selenium中运行脚本时,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
答案 0 :(得分:1)
点击后你应该尝试setValue,
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("arguments[0].textContent= arguments[1];", element,"SomeText");