2013-08-21 86 views

回答

0

Selenium IDE插件更多用於錄製(即向您顯示操作背後的代碼);它確實允許一些播放,但這是相當有限的,我不確定它可以讓你處理錯誤。現在,如果你願意使用實際的編程,那麼你可以輕鬆處理錯誤。例如,在Python中,你可以使用這樣的事情:

try: 
    driver.find_element_by_id("userid").click() 
except NoSuchElementException: 
    # do something else (close page, give you a warning, etc) 
+0

沒有真正意見的IDE – Dee

2

如果你使用的所有verify相關的命令,則腳本不停止,如果元素沒有被seleniun IDE找到,但如果你使用assert相關命令,然後你的腳本停止,如果該元素不被硒IDE發現

如果有使用verifytext命令然後運行該腳本來創建自己的腳本,看看你的腳本將不會停止,如果沒有顯示

+0

@Rommer Dela Cruz,讓我知道你的答案是否有幫助? –

+0

實際上,如果元素不存在,verifyVisible將停止腳本,您必須使用verifyElementPresent – Dee

10

元素你必須做一個明確的檢查如果在n中使用該元素之前存在元素ext命令(這可能會導致錯誤並中斷腳本的執行)。用戶擴展名「sideflow」啓用代碼內的條件跳轉。

這裏是sideflow擴展的主頁:https://github.com/darrenderidder/sideflow

隨着sideflow擴展你可以使用這樣的代碼:

storeElementPresent id=btnRecSearch isPresent 
gotoIf ${isPresent} == false End 
click id=btnRecSearch 
.... 
label End 
+0

verifyElementPresent足夠並且無需selblocks或類似的工具(gotoIF)插件 – Dee

-1
  1. 公開賽在Mozilla瀏覽器中和硒IDE的頁面。
  2. 右鍵單擊文本並選擇waitForElementPresent選項。
  3. 該命令被添加到錄製的腳本中。
  4. 一旦元素被驗證並且呈現,下一個命令可以是點擊或者按照用戶需要鍵入並且目標將總是元素ID。
1

您還可以使用實現「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

0

這裏是我解決了這個問題,例如,用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' 文件中的第三輸入端,如下面 selenium option interface

3)重新啓動SEL烯鎓鹽IDE

4)如使用(像一個正常的SELECT)

trySelect | //select | label=regexpi:.*Hey.* 

你可以做這可能會失敗,就像click例如其他命令一樣。

相關問題