在输入中插入数据并选择下拉选项后,提交按钮在 IE11 中使用硒的表单中无效

Submit button not effective in a form using selenium in IE11 after inserting data in inputs and selecting dropdown option

我的表单(在下拉菜单中)有 3 个下拉菜单(select 选项)和 2 个文本输入。此表单用于将过滤器应用于项目列表。我可以在不使用 JavascriptExecutor 的情况下填写我的输入和 select 我的选项,它可以很好地与 .sendKeys("Text") 用于文本输入和 sendKeys(Keys.ARROW_DOWN) 用于下拉选项.

但是,当我执行 btn.submit()btn.sendKeys("\n")btn.sendKeys(Keys.ENTER)btn.click() 时,它单击按钮并且包含表单的下拉菜单消失,但是页面不刷新。所以我可以用硒点击按钮(即使我手动强制我不能点击提交按钮,但按钮不会触发任何东西。

我在这个问题上卡了三天了。我试图找到我的问题的答案,但 IEDriver 点击问题的解决方案似乎是诊断问题,但事实并非如此,因为我可以点击按钮。

此外,当我使用 chrome 驱动程序对 chrome 进行相同的测试时,一切正常。

当我自己启动 IE,导航到表单,自己填写并提交时,一切正常。所以,问题是当我使用 java 插入数据时,它 "disables" 提交按钮。

在IE11中使用KendoUI,IEDriverServer 64x 3.0.0(也试过32x版本),JavaJDK1.8.0_25中Windows10 专业版

我为我的 IE 驱动程序设置了这些功能

cap.setCapability("nativeEvents", false);
cap.setCapability("unexpectedAlertBehaviour", "accept");
cap.setCapability("ignoreProtectedModeSettings", true);
cap.setCapability("disable-popup-blocking", true);
cap.setCapability("enablePersistentHover", true);

我使用 selenium 才两周,但我对 Java 非常熟悉。我读到 IE 在处理表单时遇到问题 here,但他们并未建议修复或解决方法。

经过几个小时尝试修复表单中的第二个输入,我能够让它工作的唯一方法是使用 Robot 对象。

我使用 this thread 帮助我将字符串转换为 robot.keyPress(KeyEvent.VK_EXAMPLE); 并将它们发送到输入。因此,表格一打开,我的 java 程序就变成了这样:

    if (System.getProperty("browser").equals("ie")) {
        try {
            Robot robot = new Robot();
            //...
            //Rest of the robot code
            //...
        } catch (AWTException e) {
            throw new RuntimeException(e);
        }
    } else {
        textField.clear();
        textField.sendKeys(textStr);
    }

所以我必须做的每一个动作,我都是用 Robot 做的,直到我用 btn.click();