如果我在Python中用「try except」包裝一塊Selenium Webdriver代碼,在except塊中用self.fail('some problem'),我不知道Selenium在那時會說什麼。如果沒有嘗試,Selenium會給出一個錯誤消息,例如關於可見性或元素陳舊性等。Webdriver程序如何重新拋出Selenium錯誤報告?有沒有辦法重新拋出Selenium錯誤信息?
0
A
回答
2
有幾個選項:
try:
...
except SeleniumException as problem:
raise
或
try:
...
except SeleniumException as problem:
raise problem
都將重新拋出原始異常。第一個將保留原始堆棧(所以你可以看到Selenium本身),後者將處理這個異常,好像它不在Selenium內部發生,但在raise
的位置。
但是,通常情況下,您在那個時候會有新的信息,所以您可能希望在保留原始堆棧跟蹤和異常信息的同時添加該信息。爲此,有時改變在重新推出它之前被捕獲的異常被提出;這是我不建議的,因爲它不是一個非常普遍的方法。我寧願堅持以下幾點:Python 3的知道異常鏈:
try:
...
except SeleniumException as problem:
raise MyNewException("some additional information") from problem
而如果你需要更多的功能,或者你是在Python 2裏,你可以看看我的CausedException
類。如果您需要爲新的異常提供多個原因(舊異常),也可以使用它。
相關問題
- 1. 有沒有辦法忽略XAML拋出的Visual Studio錯誤?
- 2. 有沒有辦法改變錯誤信息的顯示方式?
- 3. Flex - 有沒有辦法更改「Channel Disconnected」錯誤信息?
- 4. 有沒有辦法REGEX這個信息。
- 5. BigQuery拋出導入錯誤,沒有提供信息
- 6. 有沒有辦法在Django 1.7中重寫MinLengthValidator錯誤消息?
- 7. cin拋出錯誤信息
- 8. jQuery沒有運行,沒有錯誤信息。語法錯誤?
- 9. subprocess.CalledProcessError沒有給出錯誤信息
- 10. sigabrt沒有錯誤信息
- 11. phpMyAdmin沒有錯誤信息
- 12. 有沒有辦法列出Django信號?
- 13. PHPMailer沒有發送,沒有給出錯誤拋出500錯誤
- 14. 有沒有辦法導出Firebug HTTPRequest詳細信息?
- 15. 沒有錯誤被拋出的錯誤
- 16. 新記錄沒有保存,也沒有錯誤信息
- 17. 蟒蛇 - 沒有輸出也沒有錯誤信息
- 18. 有沒有辦法在Selenium Grid請求上傳遞額外的信息?
- 19. 有沒有辦法重新組織UIStoryboard?
- 20. 有沒有什麼辦法來自動在Firefox/IE拋出JavaScript錯誤
- 21. 有沒有辦法拋出像ENOENT或EPIPE這樣的系統錯誤?
- 22. 有沒有什麼辦法擺脫「找不到模式」的錯誤信息?
- 23. 有沒有辦法用matlab中的narginchk生成自定義錯誤信息?
- 24. 有沒有辦法從hadoop流中的python腳本中獲取信息錯誤?
- 25. Python錯誤信息'沒有錯誤信息可用'使用win32api
- 26. 重新拋出錯誤
- 27. 有沒有辦法通過Selenium/GhostDriver查看PhantomJS console.log消息?
- 28. 有沒有辦法顯示任何Dr.Retet Exception的信息消息?
- 29. 無法實現SKSprite類。沒有錯誤信息,只是沒有出現
- 30. Selenium RC「driver.quit()」拋出錯誤
你是在說[不帶參數的''raise'](http://docs.python.org/2/reference/simple_stmts.html#grammar-token-raise_stmt)? – lanzz
我不知道Python中的這個方法。我會嘗試。 – Chakra