0

例外が発生したときに、例外から特定の情報を取得する方法はありますか?

たとえば、私が電話をかけるprintStackTraceと、多くの情報が得られます...しかし、時にはあまりにも多くの情報が得られ、とにかく常に同じ情報であるため、ほとんどの情報を確認する必要はありません。

少なくともSelenium Webdriverに関しては、最初に何が問題なのかを教えてくれます

com.thoughtworks.selenium.SeleniumException: Element blah not found
  at org.openqa.selenium.internal.seleniumemulation.ElementFinder.findElement(ElementFinder.java:92)
  at org.openqa.selenium.internal.seleniumemulation.Click.handleSeleneseCommand(Click.java:35)
  at org.openqa.selenium.internal.seleniumemulation.Click.handleSeleneseCommand(Click.java:1)
  at org.openqa.selenium.internal.seleniumemulation.SeleneseCommand.apply(SeleneseCommand.java:35)
  at org.openqa.selenium.internal.seleniumemulation.Timer.run(Timer.java:40)
  at org.openqa.selenium.WebDriverCommandProcessor.execute(WebDriverCommandProcessor.java:140)  
  ...
Caused by: org.openqa.selenium.WebDriverException: ...
...
...
...

次に、自分の環境、機能 (メッセージの別のリストを含む)、およびその他の「原因」に関する情報について説明します。

これはかなり長いメッセージなので、ログ ファイルが煩雑になるのは避けたいと思っています。「原因」関連のメッセージをすべて省略する方法はありますか?

私は試しgetMessageましたが、それは言うだけです

Element blah not found

これは役に立ちません。少なくともどの行から来たのかを知りたいです。

4

1 に答える 1

1

確かに、最初のいくつかのスタック フレームだけを取得して解析します。を使用getStackTraceして取得し、パッケージ内のフレームを取得するまで(またはフィルタリングしたい場合)、正しい行を取得StackTraceElement[]するまで繰り返します。Selenium の内部行は、おそらく必要なものではありません。

getMethodNameこの要素では、getLineNumber、 など呼び出すことができます。

于 2013-09-12T17:21:36.040 に答える