Internet explorer Selenium Webdriver sendkeys在IE9.0中不会触发onchange事件

Internet explorer Selenium Webdriver sendkeys在IE9.0中不会触发onchange事件,internet-explorer,selenium,webdriver,Internet Explorer,Selenium,Webdriver,我正在使用Java为内置于ExtJs的应用程序编写Selenium测试脚本。我在其中一个页面中有一个输入字段,它附加到“onchange”事件。每当用户修改字段中的文本时,都会触发onchange事件。我正在使用WebDriver sendKeys()修改字段中的文本。因此,无论何时修改文本,Firefox和Chrome都会触发“onchange”事件(正如预期的那样),但IE9.0不会触发该事件。我在网上到处寻找答案,但没有找到。有人能帮我吗?让我知道需要更多信息我相信这是因为IE只在onbl

我正在使用Java为内置于ExtJs的应用程序编写Selenium测试脚本。我在其中一个页面中有一个输入字段,它附加到“onchange”事件。每当用户修改字段中的文本时,都会触发onchange事件。我正在使用WebDriver sendKeys()修改字段中的文本。因此,无论何时修改文本,Firefox和Chrome都会触发“onchange”事件(正如预期的那样),但IE9.0不会触发该事件。我在网上到处寻找答案,但没有找到。有人能帮我吗?让我知道需要更多信息

我相信这是因为IE只在onblur之后触发onchange。这意味着您需要强制输入字段失去焦点。最简单的方法是单击另一个元素。

您可以单击字段中的另一个元素,或者更简单的方法是在输入完成后从字段中删除选项卡

在我已经自动化的ExtJS应用程序中,我总是在执行输入后关闭字段的选项卡,这将触发所有正确的事件

以C#为例:

IWebElement元素=driver.FindElement(By.Id(“某些输入字段”);
元素SendKeys(“测试输入”)
元素SendKeys(key.Tab);

我解决了这个问题。”仅在某些场景中未触发onchange事件。如果输入文本与textfield中已存在的文本相同,则不会通过sendKey()触发onchange事件。但同样的代码在FF和Chrome浏览器上运行良好。我只是确保在ie浏览器的文本字段中设置新文本及其工作之前清除并添加空白。谢谢大家的回复

谢谢joostschouten。我尝试过这种方法。这适用于“onblur”事件,但不适用于“onchange”事件。我只在IE浏览器上看到这个问题。谢谢PocketDews。。我尝试在输入后单击其他元素,但它不起作用。我还没有试过用tab off,我今天会试着用它,让你知道。