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

时间:2013-07-22 19:01:43

标签: internet-explorer selenium webdriver

我正在使用Java为使用ExtJs构建的应用程序编写Selenium测试脚本。我在其中一个页面中有一个输入字段,该字段附加到'onchange'事件。每当用户修改字段中的文本时,都会触发onchange事件。我正在使用WebDriver sendKeys()来修改字段中的文本。因此,无论何时修改文本,都会在Firefox和Chrome中触发“onchange”事件(如预期的那样),但它不会在IE9.0中触发。我已经在网上搜索了解决方案,但没找到。所以请有人帮我这个吗?让我知道更多信息是必需的

3 个答案:

答案 0 :(得分:4)

您可以点击字段上的其他元素,也可以更简单的方法是在输入完成后从字段中选中。

在我自动化的ExtJS应用程序中,执行输入后,我将始终选中该字段,这会触发所有正确的事件。

以C#为例:

IWebElement element = driver.FindElement(By.Id("some_input_field"));
element.SendKeys("test input")
element.SendKeys(Keys.Tab);

答案 1 :(得分:0)

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

答案 2 :(得分:0)

我修复了这个问题。 '平变化'事件仅在某些情况下才被触发。如果输入文本与textfield中已存在的文本相同,则不会通过sendKey()触发onchange事件。但是相同的代码适用于FF和Chrome浏览器。我确保在文本字段中设置新文本之前清除并添加空格,即浏览器及其工作。谢谢大家的回复!