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
我以前遇到过这种问题,因为我在回发之间使用局部变量来存储对元素的引用。
不要做这个
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