私はStale参照例外(要素はもはや 有効ではありません)を取得していますが、自動化のためにC# - Webdriverを使用しています。EventFiringWebDriverリスナーの古くなっている参照例外
私は自動化フレームワークのためにSeleniumを使用しています。その中で私は Selenium EventのEventFiringWebDriverクラスを使用しました。これは、InterenetExplorerWebdriverのすべての イベントをリッスンします(Click()またはSendKeys()など)。 (ElementClicked、ElementValueChanged)のようなEventFiringWebDriverクラスのイベント が、Webベースのログ ファイルにWebElementEventArgsオブジェクトの属性を記録するというロジックを実装しました。したがって、実行の最後に、XSLT形式で各テストケースの実行の詳細を確認し、関数 のエラーを追跡できます。
コード: - 私はセレンを使用して自動化する私のアプリケーションで
public class SeleniumEventListener : EventFiringWebDriver
{
public SeleniumEventListener(IWebDriver webDriver):base(webDriver)
{
ElementClicked += new EventHandler<WebElementEventArgs>SeleniumEventListener_ElementClicked);
//more events handled here..
}
void SeleniumEventListener_ElementValueChanged(object sender,WebElementEventArgs e)
{
LogPassedStep(e)
}
private LogPassedStep(e)
{
string title = e.Element.value;
string status = "clicked"
//XML based logging here.
}
}
。私はいくつかのテキストを持っています ボックスとボタン、EventFiringWebDriverクラスXMLLoggingは、テストケースの実行を通じてテキストボックスのために正しく を動作させますが、ボタンやリンクには が有効です。 webdriverを、正しく作品をクリック)
いくつかのボタンは、DOMを変化させる崩壊を展開 タイプのものであり、そして私のアプリケーション では、私は 古い参照例外が頻繁に来ることで定期的に更新し、タスクのページを持っています実行中に EventFiringWebDriverがオブジェクトを認識できず、古くなった参照 例外は
...私を助けてくださいか、私に(ボタン、リンクなど) Webページオブジェクトの詳細は、私が(私はC#の-webdriverを使用しています) ロギング機能を実装することができるようにすることを取得する方法を提案してください来ます/
を私は追加code.Inにイベントを追加する必要があります私はXMLロギングロジックを1回だけ書く必要がありました。 –
EventDriverクラスを使用する私の目的は、詳細な実行レポートをXML形式で取得することです。他のオプションもあります。 –