【发布时间】:2012-01-12 04:56:50
【问题描述】:
我收到过时的引用异常(元素不再 有效),我正在使用 c# - Webdriver 进行自动化。
我将 Selenium 用于自动化框架。在那我用过 Selenium 事件的 EventFiringWebDriver 类。倾听每一个 InternetExplorerWebdriver 的事件(如 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.
}
}
在我使用 selenium 自动化的应用程序中。我有一些文字 框和按钮,EventFiringWebDriver 类 XMLLogging 有效 通过测试用例执行正确地为文本框但是 对于按钮或链接,有时它会给出“元素没有 更长时间有效”过时的引用异常(一些按钮是 类型 Expand collapse 这会导致 DOM 发生变化,并且在我的应用程序中 我有一个任务页面,它会定期刷新 陈旧的引用异常经常出现)
Webdriver 点击在整个执行过程中正常工作,但 EventFiringWebDriver 无法识别对象和过时引用 异常来了
请帮助我.. 或者请建议我获取详细信息的方法 网页对象(如按钮,链接),以便我可以实现 日志功能(我使用的是 C#-webdriver)/
【问题讨论】: