我需要你的幫助。我只想在Firefox上繼續使用我的Selenium IDE腳本,即使沒有找到錯誤或元素。我正在使用HTML格式的腳本。Selenium IDE:如何在元素上找不到或出錯的腳本
回答
Selenium IDE插件更多用於錄製(即向您顯示操作背後的代碼);它確實允許一些播放,但這是相當有限的,我不確定它可以讓你處理錯誤。現在,如果你願意使用實際的編程,那麼你可以輕鬆處理錯誤。例如,在Python中,你可以使用這樣的事情:
try:
driver.find_element_by_id("userid").click()
except NoSuchElementException:
# do something else (close page, give you a warning, etc)
沒有真正意見的IDE – Dee
如果你使用的所有verify
相關的命令,則腳本不停止,如果元素沒有被seleniun IDE找到,但如果你使用assert
相關命令,然後你的腳本停止,如果該元素不被硒IDE發現
如果有使用verifytext
命令然後運行該腳本來創建自己的腳本,看看你的腳本將不會停止,如果沒有顯示
@Rommer Dela Cruz,讓我知道你的答案是否有幫助? –
實際上,如果元素不存在,verifyVisible將停止腳本,您必須使用verifyElementPresent – Dee
元素你必須做一個明確的檢查如果在n中使用該元素之前存在元素ext命令(這可能會導致錯誤並中斷腳本的執行)。用戶擴展名「sideflow」啓用代碼內的條件跳轉。
這裏是sideflow擴展的主頁:https://github.com/darrenderidder/sideflow
隨着sideflow擴展你可以使用這樣的代碼:
storeElementPresent id=btnRecSearch isPresent
gotoIf ${isPresent} == false End
click id=btnRecSearch
....
label End
verifyElementPresent足夠並且無需selblocks或類似的工具(gotoIF)插件 – Dee
- 公開賽在Mozilla瀏覽器中和硒IDE的頁面。
- 右鍵單擊文本並選擇
waitForElementPresent
選項。 - 該命令被添加到錄製的腳本中。
- 一旦元素被驗證並且呈現,下一個命令可以是點擊或者按照用戶需要鍵入並且目標將總是元素ID。
您還可以使用實現「catch」方法的插件Selblocks來捕獲錯誤並繼續執行腳本。 try/catch/finally blocks 嘗試可以在拋出錯誤時提供特殊處理,並且可以保證執行例如「清理」邏輯。
catch塊指定如果在try塊中拋出錯誤該怎麼做。也就是說,如果try塊中的任何語句或者try塊內調用的函數或子函數都會引發錯誤,則控制權將跳轉到匹配的catch塊,並清除錯誤。如果在try塊中沒有引發錯誤,則跳過catch塊。 Catch通過匹配其錯誤消息(指定爲「子字符串」)或/正則表達式/來截取給定的錯誤。提供沒有規範將捕獲所有錯誤。
finally塊在try和catch塊之後執行。無論是否拋出錯誤,它總是執行。即使try或catch塊通過「流程更改」命令結束,它也會執行:continue,break,return或exitTest命令。
嘗試塊可以嵌套。如果內部嘗試沒有發現錯誤,則輸入包含的try/catch。所有嵌套的finally塊的內容都保證執行,最內層到最外層 - 即使出現錯誤,也是如此。
catch和finally都是可選的,但如果兩者都沒有提供,那麼try就沒有效果。
可以在try和endTry中指定一個可選的標識符,它將被驗證以進行適當的配對。試試
例/捕獲/終於 嘗試|外 嘗試|內 擲| 「blamo」 getEval |警報( 「該警報將不會執行」) 終於 getEval |警報( 「1」) ENDTRY |內 抓|/blamo/ getEval |警報( 「第二」) ENDTRY |外 你可以在這裏閱讀更多http://refactoror.wikia.com/wiki/Selblocks_Reference
這裏是我解決了這個問題,例如,用SELECT
命令:
我創建了像一個正常select
但如果它無法找到元素
1)創建文件「用戶extensions.js」用下面的代碼不停止測試trySelect
自定義命令
Selenium.prototype.doTrySelect = function(locator,target) {
try {
return Selenium.prototype.doSelect.call(this,locator,target);
} catch(err) { return null; }
};
2)在硒IDE =>選項=>選項=>一般:添加 '用戶extensions.js' 文件中的第三輸入端,如下面
3)重新啓動SEL烯鎓鹽IDE
4)如使用(像一個正常的SELECT)
trySelect | //select | label=regexpi:.*Hey.*
你可以做這可能會失敗,就像click
例如其他命令一樣。
- 1. Selenium IDE找不到元素
- 2. Selenium IDE 1.5.0「元素...找不到」錯誤
- 3. Selenium IDE腳本找不到第二個選擇元素
- 4. 錯誤在Selenium IDE上找不到元素ID
- 5. Selenium WebDriver無法找到Selenium IDE可以找到的元素
- 6. Selenium IDE - [錯誤]元素css = button.ng-binding.active找不到
- 7. Selenium Webdriver在IE8上找不到元素
- 8. 如何在selenium ide中使用元素文本查找xpath以使用元素?
- 9. Selenium IDE [錯誤]元素id = cmp_admin未找到
- 10. Selenium IDE間歇性錯誤 - 元素css = a.signout未找到
- 11. Selenium IDE,[錯誤]元素名稱....未找到
- 12. 無法通過Selenium IDE在iFrame中找到任何html元素
- 13. WWW :: Selenium'找不到元素'
- 14. 找不到selenium webdriver元素
- 15. Selenium IDE,元素找不到,無論目標enetred
- 16. selenium-IDE-2.9.0 - [error]元素css = li.xspPickerItem.xspPickerItemHover找不到
- 17. 在Selenium中找不到元素鏈接
- 18. Selenium WebDriver在頁面上找不到任何元素
- 19. 在找到元素並執行元素上的操作後找到元素找不到元素
- 20. Selenium webdriver python通過xpath找到元素 - 找不到元素
- 21. 如何找到元素[For Selenium]
- 22. Selenium RC Automation「元素未找到錯誤」
- 23. ExpatError:找不到元素 - Python腳本
- 24. Selenium找不到這樣的元素
- 25. Selenium - 找不到xpath的元素
- 26. Selenium找不到id和xpath的元素
- 27. 如何在Selenium RC中運行Selenium IDE腳本?
- 28. 如何使用PHPUnit在Selenium RC中運行Selenium IDE腳本?
- 29. 在Selenium中查找dymanic元素:「元素不可見」錯誤
- 30. 在Selenium IDE中驗證輸入文本元素不爲空
如果你在這一點上,我會建議導出到代碼用於硒-webdriver,並開始捕捉異常,如Thiago的回答中所建議的。 – grumpasaurus