回答
您的解決方案通常是通過觀察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>
不優雅,但它的工作。
- 1. 滾動事件不會被解僱div
- 2. KeyDown事件不被解僱
- 3. JavaScript事件不被解僱
- 4. 事件不被解僱
- 5. 繼電器命令不被解僱
- 6. 哪個事件被解僱?
- 7. 事件沒有被解僱
- 8. 事件沒有被解僱
- 9. Dropdown onchange事件在Wordpress中未被解僱
- 10. jQuery mousemove不會被解僱?
- 11. CKEditor的drop事件不被解僱
- 12. jQuery的事件不被解僱
- 13. 上傳事件不被解僱
- 14. UIWebView的觸摸事件不被解僱
- 15. 標籤dataChange事件不被解僱
- 16. 形成閉合事件不被解僱
- 17. 什麼底層VS命令被解僱?
- 18. 獲得被解僱(觸發)的事件的名稱(類型)
- 19. dojo.form.Select onChange未解僱
- 20. jquery的drop事件有時不會被解僱
- 21. 如何iAd事件永遠不會被解僱
- 22. MVC ReactJS按鈕onclick事件不會被解僱
- 23. 拖放事件不會一直被解僱
- 24. DataContextChanged事件不會因更改而被解僱
- 25. 類型命令不工作在硒IDE
- 26. 獲取onChange事件類型
- 27. 觸摸事件未被解僱
- 28. click事件被解僱兩次 - jQuery的
- 29. ComboBox.SourceUpdated事件沒有被解僱
- 30. Bootstrap模式事件沒有被解僱
我正在使用IDE。這就是我所做的。 [#Executing:| getEval | selenium.selectWindow(null)|| ]不起作用。錯誤:selenium.selectWindow不是函數 – 2011-01-17 09:16:52
我通常只使用Selenium RC,我不確定它甚至可以解決IDE的一些問題。您應該更新您的問題與該信息 – StefanE 2011-01-17 09:43:23