使用NUnit和WatiN运行任何测试时,我收到了UnauthorizedAccessException错误:
Test Test.IndexTests.Can_Do' failed: WatiN.Core.Exceptions.ElementNotFoundException : Could not find INPUT (hidden) or INPUT (password) or INPUT (text) or INPUT (textarea) or TEXTAREA element tag matching criteria: Attribute 'name' equals 'q' at http://www.google.com/ (inner exception: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED)))
----> System.UnauthorizedAccessException : Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at WatiN.Core.Element.get_NativeElement()
at WatiN.Core.Element.GetAttributeValueImpl(String attributeName)
at WatiN.Core.Component.GetAttributeValue(String attributeName)
at WatiN.Core.Element.get_Id()
at WatiN.Core.Element.get_IdOrName()
at WatiN.Core.TextField.TypeText(String value)
Class1.cs(23,0): at Tests.Can_Do()
--UnauthorizedAccessException
at mshtml.IHTMLElementCollection.tags(Object tagName)
at WatiN.Core.Native.InternetExplorer.IEElementCollection.GetElementsByTag(String tagName)
at WatiN.Core.NativeElementFinder.FindElementsByTag(String tagName)
at WatiN.Core.NativeElementFinder.<FindElementByTags>d__0.MoveNext()
at WatiN.Core.ElementFinder.FindFirst()
at WatiN.Core.Element.FindNativeElement()
at WatiN.Core.Element.get_Exists()
at WatiN.Core.Element.<>c__DisplayClass9.<WaitUntilExistsOrNot>b__8()
at WatiN.Core.UtilityClasses.TryFuncUntilTimeOut.Try[T](DoFunc`1 func)
0 passed, 1 failed, 0 skipped, took 43.44 seconds (NUnit 2.5.5).
我似乎无法通过谷歌找到任何东西,并想知道是否有人有类似的问题?
干杯
答案 0 :(得分:3)
答案 1 :(得分:2)
HTML未完全加载时可能会发生这种情况 您可以添加睡眠或添加等待完成命令
ie.WaitForComlete();
最好的方法是捕获特定的异常并再次尝试:
try
{
//your code
}
catch (UnauthorizedAccessException)
{
}
答案 2 :(得分:2)
我的解决方案是卸载我银行提供的Trusteer Rapport浏览器安全软件。我忘了它甚至安装了。
答案 3 :(得分:1)
我在测试中的随机位置遇到了同样的问题。我已经在受信任的区域内运行了。
添加
System.Threading.Thread.Sleep(200);
在每个问题位置“解决”问题或至少它的症状对我来说。至少我不再得到错误,并且能够运行测试。
这似乎是一个竞争条件。