WATIN不断崩溃,HRESULT:0x80070005(E_ACCESSDENIED)

本文关键字:ACCESSDENIED 0x80070005 崩溃 HRESULT WATIN | 更新日期: 2023-09-27 18:27:01

我一直在使用Windows XP 的IE6上得到这个

WatiN.Core.Exceptions.RunScriptException : RunScript failed
  ----> System.UnauthorizedAccessException : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

我将我的域添加到受信任的站点,但仍然存在相同的问题。

此错误没有发生在带有IE9 的Windows 7 64位上

这是崩溃的地方

 browser.Image(Find.ByAlt("Use a password")).Click();
 browser.TextField(Find.ByName("_MYPW")).TypeText(privateCurrentPassword); // CRASHES HERE

WATIN不断崩溃,HRESULT:0x80070005(E_ACCESSDENIED)

我以前遇到过这种问题,因为我在回发之间使用局部变量来存储对元素的引用。

不要做这个

    var btn Browser.Button("clientid")
    btn.Click(); //assume that this triggers a postback
    var result = btn.Text;

做这个

    Browser.Button("clientid").Click();
    result = Browser.Button("clientid").Text;

如果您运行的是Windows Vista或更高版本,我认为您需要以提升的权限运行才能自动执行IE。仅仅是管理员组的成员是不够的,您需要以管理员身份运行Nunit(或您正在使用的任何程序)。

在我的案例中,异常发生的原因是访问一个不存在的对象,因为在获取对象和尝试使用对象之间发生了导航。例如:

var myElement = otherElement.Element(Find.ByClass("foo"));
ie.Goto("http://www.google.com");
var result = myElement.ClassName; // Exception thrown here