Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/rust/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 华庭元';无法使用MSpec-未经授权的访问异常_Visual Studio 2010_C# 4.0_Watin_Testdriven.net_Mspec - Fatal编程技术网

Visual studio 2010 华庭元';无法使用MSpec-未经授权的访问异常

Visual studio 2010 华庭元';无法使用MSpec-未经授权的访问异常,visual-studio-2010,c#-4.0,watin,testdriven.net,mspec,Visual Studio 2010,C# 4.0,Watin,Testdriven.net,Mspec,我试图让WatiN在VS2010中使用TestDriven.Net与MSpec合作。我的代码如下: [Subject("Whatever")] public class when_on_home_page { private static IE browser; Establish context = () => browser = new IE(); Because of = () => { browser.GoTo("

我试图让WatiN在VS2010中使用TestDriven.Net与MSpec合作。我的代码如下:

[Subject("Whatever")]
public class when_on_home_page {

    private static IE browser;

    Establish context = () =>
        browser = new IE();

    Because of = () => {
        browser.GoTo("http://localhost:1234/");
        browser.WaitForComplete();
    };

    It should_show_add_details_link = () =>
        browser.Link(Find.ByValue("Add Details")).Exists.ShouldBeTrue();
}
当我运行此操作时,浏览器会加载页面,但当它检查链接时,我会得到:

无论什么,只要在主页上
»应显示添加详细信息链接(失败)

测试“应显示添加详细信息链接”失败: System.UnauthorizedAccessException:访问被拒绝。(HRESULT异常:0x80070005(E_访问被拒绝)) 位于mshtml.IHTMLElementCollection.tags(对象标记名) 位于WatiN.Core.Native.InternetExplorer.IEElementCollection.GetElementsByTag(字符串标记名) 位于WatiN.Core.NativeElementFinder.FindElementsByTag(字符串标记名) 在WatiN.Core.NativeElementFinder.d_u2.MoveNext()中 在WatiN.Core.ElementFinder.FindFirst()中 在WatiN.Core.Element.FindNativeElementInternal()中 在WatiN.Core.Element.get_Exists()中 NavigationSpec.cs(20,0):在RobowB.Specs.when_上的主页.b__2() at Machine.Specifications.Model.Specification.InvokeSpecificationField() at Machine.Specifications.Model.Specification.Verify()

环顾四周后,我检查了以下内容:

  • VS正在以管理员身份运行
  • 显然,TestDriven.Net以STA模式运行一切
  • IE已关闭“保护模式”
  • 我无法将该站点添加到受信任的站点,可能是因为它在本地运行
  • 我调用WaitForComplete(),并尝试了Thread.Sleep()
我也在FireFox上试过,但结果就是崩溃了

知道我做错了什么吗?

为我工作。事实上,这是我的第一个WatiN规范;我在试图重现您收到的错误时写道::-)

我唯一需要做的特殊事情就是关闭IE的保护模式。我运行了规范

  • 在命令行上(请参阅repo中的
    WebSpecs Watin.cmd
    ,在运行cmd之前,请编译specs项目并从VS运行web应用程序)
  • 与TD.Net跑步者一起
  • 用重弹器
他们在这三种情况下都取得了成功。我不是管理员


你能试着用上面链接的项目重现错误吗?如果您没有安装Git,则顶部会有一个下载按钮。

System.UnauthorizedAccessException可能在多种情况下发生。如果页面未完全加载,而您试图访问某个对象,并且根本不是正确的用户。首先,我将手动调试脚本,并以管理员身份运行测试运行程序


如果这样做有效,那么尝试管理和全速、非管理和全速以及管理和调试的组合。那么你应该知道真正的问题是什么。在一些罕见的情况下(对于WatiN的早期版本),我必须在try-catch中包装调用,然后处理此异常,然后在短暂的等待后重试。

谢谢,但没有乐趣:调试在WatiN.Core.dll的IEElementCollection.cs中的这一行给出了相同的错误:'(IHTMLElementCollection)elementCollection.tags(tagName)'。捕捉、等待、重试都会得到相同的结果。命令行可以工作,但奇怪的是,Td.Net不能在页面中找到元素。我在我的电脑上试用了命令行运行程序,效果很好,所以我想是我的Td.Net运行程序出了问题。我有最新版本,并尝试在packages\(mspec)\tools中运行“InstallTDNetRunner”批处理文件,但没有乐趣。至少我现在知道问题在哪里,所以我可以进一步调查。谢谢如果您使用的是TD.Net>=2.24,则无需安装TD.Net runner。只要确保MSpec.tdnet、MSpec.TDNetRunner.dll和MSpec.dll文件在同一个文件夹中就行了。是的,我意识到了——我在v3上,但这两种方式都没有区别。一切都在正确的文件夹中(我的是从NuGet安装的,你的是正确的),但我仍然得到相同的结果。它确实运行MSpec测试,似乎是WatiN方面存在问题。现在我将从命令行运行它。谢谢你的帮助