6

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

4

3 回答 3

4

您可以单击字段上的不同元素,或者更简单的方法是在输入完成后关闭字段。

在我已经自动化的 ExtJS 应用程序中,我总是在执行输入后从字段中选择标签,这会触发所有正确的事件。

以 C# 为例:

IWebElement element = driver.FindElement(By.Id("some_input_field"));
element.SendKeys("test input")
element.SendKeys(Keys.Tab);
于 2013-07-22T20:21:52.400 回答
0

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

于 2013-07-24T04:28:46.267 回答
0

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

于 2013-07-22T19:06:58.137 回答