私はJavaでfirefoxでwebdriverを使用しています。 私は例えば、注釈を使用して要素を探しています:なぜSeleniumがNoSuchElementExceptionに関する情報を提供しないのですか
@FindBy(id = "terminal")
private WebElement selectTerminal;
は、そのページをレンダリングするのに失敗したと言うことができますし、何らかの理由で、この要素が描画されません。エラーメッセージは非常にあいまいであると私はデバッグにその非常に難しい、ジェンキンス上でリモートテストを実行している場合や、正確に起こったか見て、例えば:
私はセレクタを含むことになり、より詳細な情報を得ることができますどのようにThe element could not be found (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 72 milliseconds
For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html
Build info: version: '2.20.0', revision: '16008', time: '2012-02-28 15:00:40'
System info: os.name: 'Linux', os.arch: 'i386', os.version: '2.6.32-312-ec2', java.version: '1.6.0_20'
Driver info: driver.version: RemoteWebDriver
?もちろん、私は試して/キャッチなどのヘルパーメソッドのいくつかの種類でそれをラップすることができます。しかし、私はそれがセレクタを表示していない理由知っていると、どのように私はその警告を取り除くことができますか?
ありがとうございます!
また、このウェブページはあまり役に立ちません。これは本当に痛みであり、私は解決策を楽しみにしています。私の場合、それはカスタムキャッチで、セレクタを記録してスクリーンショットを撮った。 –
org.openqa.selenium.remote.ErrorHandlerクラスのソースを見ると、次のようなコメントが表示されるので、これは予期される動作です:// serverErrorがnullの場合、サーバはclassNameを提供しませんでした( //サーバーはJavaプロセスです)またはスタックトレース。 classNameの欠如はOKですが、 // stacktraceを持たないと、問題をデバッグする能力が本当に損なわれます。 – gerasalus
私はPHPで同様の問題を抱えていましたが、try/catchブロックでラップすることにもなりました。それの唯一のものだと思われる... – Potherca