WATIN与HRESULT一起崩溃:0x80070005(E_ACCESSDENIED)

时间:2012-03-06 17:43:59

标签: c# internet-explorer c#-4.0 watin

我继续使用Windows XP在IE6上获取此功能

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

我将自己的域名添加到可信站点,但问题仍然存在。

Windows 7 64位与IE9

不会发生此错误

这是崩溃的地方

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

3 个答案:

答案 0 :(得分:2)

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

不要这样做

    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;

答案 1 :(得分:0)

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

答案 2 :(得分:0)

在我的情况下,由于在获取对象和尝试使用它之间发生导航而访问不再存在的对象,因此发生异常的原因。例如:

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