无法使用IE11中的sendkeys或javascript在输入框中输入文字

时间:2018-01-22 14:21:48

标签: javascript selenium internet-explorer selenium-webdriver serenity-bdd

我正在尝试使用sendkeys或javascript将文本输入到输入框中。我可以看到输入到输入字段的值,但是当点击搜索按钮时,我收到一条输入字段不能为空的错误消息。

html是

  
    

输入id =" inputMId"类=""类型="文本" data-bind =" value:mId,onMFieldFocusOut:MId,css {datePicker:isMIdError()}" MAXLENGTH =" 15"
        span class =" validationMessage" style =" display:none;"
span id =" MErrorMessage"类=" validationMessage"     数据绑定="文本:mErrorMessage,可见:isVisibleMErrorMessage()"     style =" display:none;"

  



我试过的代码是

element.sendKeys("value") 


JavascriptExecutor js = (JavascriptExecutor)getDriver();
js.executeScript("document.getElementById('inputMId').value='"+testData.get("MId")+"';"); 



我正在使用宁静框架在Internet Explorer 11上尝试此操作。
以上代码在chrome

上完美运行

2 个答案:

答案 0 :(得分:0)

我遇到过与IE类似的问题我快速解决了以前使用的问题

  • 使用java脚本执行器将元素滚动到视图
  • 执行SendKeys()操作
  • 将重点放在文本字段
  • 最后关注焦点(模糊)元素

我用它来尝试复制实际的用户交互

虽然我有兴趣知道简单的SendKeys()动作可以在Chrome上运行而不是IE的原因

答案 1 :(得分:0)

最后,下面的内容对我有用。

Clipboard clpbrd = Toolkit.getDefaultToolkit().getSystemClipboard();
Transferable stringSelection = new StringSelection(myString);
clpbrd.setContents(stringSelection, null);
element.click();
Robot r;
try {
r = new Robot();
r.keyPress(KeyEvent.VK_CONTROL);
r.keyPress(KeyEvent.VK_V);
r.keyRelease(KeyEvent.VK_CONTROL);
r.keyRelease(KeyEvent.VK_V);
} catch (AWTException e) {
e.printStackTrace();
}

我不确定这段代码是否会使用Jenkins成功运行,在本地它运行得很好