WatiN UnauthorizedAccessException错误

时间:2010-11-08 00:47:46

标签: watin

使用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).

我似乎无法通过谷歌找到任何东西,并想知道是否有人有类似的问题?

干杯

4 个答案:

答案 0 :(得分:3)

尝试我对其他问题的回答:

  

尝试关闭IE的保护模式或将您的网站添加到受信任区域。

WatiN permissions problem when eval javascript code

答案 1 :(得分:2)

HTML未完全加载时可能会发生这种情况 您可以添加睡眠或添加等待完成命令

ie.WaitForComlete();

最好的方法是捕获特定的异常并再次尝试:

     try
     {
         //your code
     }
     catch (UnauthorizedAccessException)
     {

     }

答案 2 :(得分:2)

我的解决方案是卸载我银行提供的Trusteer Rapport浏览器安全软件。我忘了它甚至安装了。

答案 3 :(得分:1)

我在测试中的随机位置遇到了同样的问题。我已经在受信任的区域内运行了。

添加

System.Threading.Thread.Sleep(200);

在每个问题位置“解决”问题或至少它的症状对我来说。至少我不再得到错误,并且能够运行测试。

这似乎是一个竞争条件。