在selenium类型命令中不会触发onchange事件

Jig*_*hah 8 selenium automated-tests selenium-ide

我正在输入一些值,在改变时做了总计.但不知何故,这个事件并没有被selenium type命令解雇.

我也试过typeKey和typeAt ..但没有成功.有什么解决方法吗?

小智 8

要触发onchange事件,请尝试在Selenium IDE中添加此命令:

fireEvent targetID blur


Mar*_*des 7

Firefox有一个错误,可以防止在浏览器窗口失焦时执行某些事件.当您运行自动化测试时,这可能是一个问题 - 即使窗口没有聚焦,也可能会打字.

为了解决这个问题,我"手动"触发了更改事件,将javascript注入到我的测试中:

//suppose "element" is an input field
element.sendKeys("value");
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("$(arguments[0]).change();", element);
Run Code Online (Sandbox Code Playgroud)

您可能已经注意到,我正在使用jQuery来触发更改事件.如果你没有在你的应用程序上使用jQuery,你可以在这里查看如何使用vanilla javascript触发它.

希望能帮到别人.


Ste*_*anE 1

您的解决方案通常是通过查看 JavaScript 代码找到的。

您始终可以选择的一个选项是输入值并从代码中手动触发实际的 OnChange 事件。

关于此链接文本有一个未解决的 问题 FireFox Windows 未处于活动状态并阻止触发 OnChange。

在使用 typeKeys 命令之前尝试一下:

selenium.selectWindow(null);
Run Code Online (Sandbox Code Playgroud)