onchange事件不会被解雇硒类型命令
我输入一些价值,在变化做一个总数。但不知何故,这个事件并没有被硒型命令所解雇。onchange事件不会被解雇硒类型命令
我也试过typeKey和typeAt ..但没有成功。任何解决方法?
您的解决方案通常是通过观察JavaScript代码中发现..
你总是有是把在价值和手动触发从代码中的实际OnChange事件的选项。
有一个关于此的问题link text FireFox的Windows问题没有激活,并且无法触发OnChange。
使用typeKeys命令之前,试试这个:
selenium.selectWindow(null);
如果你正在使用Selenium 1.x中,还有一个fireEvent命令,你可以使用键入值后手动触发onChange事件。也许这会解决你的问题?
这为我工作在IDE 做的,以
Typekeys targetID input
FireEvent targetID focus
Type targetID input
源看起来是这样的(输入是字母r
)
<tr>
<td>typeKeys</td>
<td>//form/input</td>
<td>r</td>
</tr>
<tr>
<td>fireEvent</td>
<td>//form/input</td>
<td>focus</td>
<tr>
<td>fireEvent</td>
<td>//form/input</td>
<td>focus</td>
</tr>
<tr>
<td>type</td>
<td>//form/input</td>
<td>r</td>
</tr>
</tr>
<tr>
<td>type</td>
<td>//form/input</td>
<td>r</td>
</tr>
要触发onchange事件以下3个命令,尝试在Selenium IDE中添加此命令:
fireEvent targetID blur
这应该是接受的答案(恕我直言)。这正是*我所需要的!另外,在我的情况下,这必须与`sendKeys`而不是`type`一起使用。非常感谢,@trex。 – OscuroAA 2015-12-10 00:32:32
Firefox有一个bug,它可以防止在浏览器窗口焦点不清的情况下执行某些事件。当你运行自动化测试时,这可能是一个问题 - 即使窗口没有对焦,也可能会打字。
要解决这个问题我更改事件“手动”触发时,注入的JavaScript到我的测试:
//suppose "element" is an input field
element.sendKeys("value");
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("$(arguments[0]).change();", element);
正如你可能已经注意到,我使用jQuery来触发更改事件。如果你没有在你的应用上使用jQuery,你可以检查here如何使用vanilla javascript来触发它。
希望能帮助别人。
它看起来像 “的SendKeys” 命令执行,以纠正这个:
https://code.google.com/p/selenium/issues/detail?id=5451
这为我工作。
<tr>
<td>sendKeys</td>
<td>id=Quantity</td>
<td>Type stuff here</td>
</tr>
我有一个类似的问题,用Ajax制作下拉列表。
作为一个字段的用户类型,系统将显示AJAXdiv
瓦特有几种选择,每一个与target='#'
而且更要命的链接,有一个叫上的onChange()那漫天功能系统标志,以及标志将被用作验证在form.submit() (哦,痛苦)
不管怎么说,我对这个解决方案:
1 - 硒的SendKeys命令,以便阿贾克斯DIV会出现
<tr>
<td>sendKeys</td>
<td>id=txtTipoDocumento</td>
<td>ipsum lorem</td>
</tr>
2 - 等待与期望选项的链接出现
<tr>
<td>waitForElementPresent</td>
<td>link=ipsum lorem</td>
<td></td>
</tr>
3 - 硒clickAt链接
<tr>
<td>clickAt</td>
<td>link=ipsum lorem</td>
<td>10,20</td>
</tr>
4 - 这里是其一捕获:手动启动onChange()和模糊事件。此外,拉福斯浏览器将焦点设置不同场
<tr>
<td>fireEvent</td>
<td>id=txtTipoDocumento</td>
<td>blur</td>
</tr>
<tr>
<td>fireEvent</td>
<td>id=selSerie</td>
<td>change()</td>
</tr>
<tr>
<td>fireEvent</td>
<td>id=selSerie</td>
<td>blur</td>
</tr>
<tr>
<td>focus</td>
<td>id=imgDataElaboracao</td>
<td></td>
</tr>
5 - 最后,可以肯定,我做了硒都对印版的提交按钮执行ClickAt()命令,之间一个鼠标按下和MouseUp命令
<tr>
<td>mouseDown</td>
<td>id=btnSalvar</td>
<td></td>
</tr>
<tr>
<td>focus</td>
<td>id=btnSalvar</td>
<td></td>
</tr>
<tr>
<td>clickAt</td>
<td>id=btnSalvar</td>
<td>10,20</td>
</tr>
不优雅,但它的工作。
我正在使用IDE。这就是我所做的。 [#Executing:| getEval | selenium.selectWindow(null)|| ]不起作用。错误:selenium.selectWindow不是函数 – 2011-01-17 09:16:52
我通常只使用Selenium RC,我不确定它甚至可以解决IDE的一些问题。您应该更新您的问题与该信息 – StefanE 2011-01-17 09:43:23