我得到陳舊的引用異常(元素不再有 有效),我正在使用c# - Webdriver進行自動化。EventFiringWebDriver監聽器的陳舊引用異常
我使用Selenium進行自動化框架。在此我已使用Selenium Event的EventFiringWebDriver類 。它偵聽InterenetExplorerWebdriver(Like Click()或SendKeys())的每個 事件。在 EventFiringWebDriver類的事件,如 (ElementClicked,ElementValueChanged)我已經實現了邏輯, 將WebElementEventArgs對象的屬性記錄到基於XML的日誌 文件。所以在執行結束時,我可以看到以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工作 正確的文本框通過了測試用例執行但是 爲按鈕或鏈接的一些時間它給「元素沒有 更長的有效」陳舊的引用異常在一些按鈕是 類型的展開收起導致DOM改變,而在我的應用程序 我有刷新在該 陳舊引用異常來經常定期間隔)任務頁面
的webdriver的正確點擊作品整個執行過程中,但EventFiringWebDriver無法識別該對象,並且Stale參考 例外來
請幫助我..還是請大家建議我得到那個 網頁對象(如按鈕,鏈接)的細節,使我能夠實現 日誌記錄功能的方式(我使用C#-webdriver)/
這種做法會增加不必要的code.Because每一個我處理的執行過程中,我將不得不增加額外的code.In事件元素EventListener類的我只需要編寫一次XML日誌記錄邏輯。 – 2012-01-12 08:18:35
我打算使用EventDriver類是以XML格式獲取詳細的執行報告..所以我們有任何其他選項來做到這一點.. – 2012-01-12 08:22:27