Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/17.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
C# 为什么尝试导航时Selenium web驱动程序会崩溃?_C#_Asp.net Mvc_Selenium_Testing - Fatal编程技术网

C# 为什么尝试导航时Selenium web驱动程序会崩溃?

C# 为什么尝试导航时Selenium web驱动程序会崩溃?,c#,asp.net-mvc,selenium,testing,C#,Asp.net Mvc,Selenium,Testing,情况: 为了在ASP.NET MVC应用程序上运行集成测试,我们选择了Selenium的Web驱动程序 问题: 使用Internet Explorer驱动程序从VS2015运行测试时,控制台显示错误消息(请参见下面的屏幕截图)。 同时,浏览器会打开和关闭。控制台冻结了。然后,Visual Studio显示StackOverflow异常消息: 诊断: 一旦驾驶员尝试应用程序中的导航操作,测试就会崩溃 [Test] public void PerformNavigation() { Dr

情况:

为了在ASP.NET MVC应用程序上运行集成测试,我们选择了Selenium的Web驱动程序

问题:

使用Internet Explorer驱动程序从VS2015运行测试时,控制台显示错误消息(请参见下面的屏幕截图)。 同时,浏览器会打开和关闭。控制台冻结了。然后,Visual Studio显示StackOverflow异常消息:

诊断:

  • 一旦驾驶员尝试应用程序中的导航操作,测试就会崩溃

    [Test]
    public void PerformNavigation()
    {
        Driver.Navigate().GoToUrl(GetAbsoluteUrl("/")); // <-- The test crashes here
    }
    
    然而,我觉得奇怪的是,这些测试不能与这样的注释一起工作。它们在调试模式下工作良好,但不能通过web驱动程序工作。
    我将尝试进一步研究。

    您可以尝试在测试开始时动态加载程序集(.dll),直接加载C#代码。 为此,可以使用以下代码行:

    Assembly.LoadFile($"{AppDomain.CurrentDomain.BaseDirectory}\\YourDLL.dll");
    

    我最终发现控制器方法之前的注释干扰了我的测试。在控制器的方法之前,我们使用这些注释检查用户权限:

    [AuthorizedFunctionalities(Functionalities = "MyFunctionalities")]
    

    通过移除这些涂油剂,测试工作正常。我仍然需要知道为什么web驱动程序不喜欢这些。IIS express与selenium没有什么关系,为什么屏幕截图?我使用IISExpress的控制台输出来了解发生了什么(请求、http状态代码…)您需要生成驱动程序变量。您这样做了吗?也从一个位置加载它没有看到您的注释(//works)
    Assembly.LoadFile($"{AppDomain.CurrentDomain.BaseDirectory}\\YourDLL.dll");
    
    [AuthorizedFunctionalities(Functionalities = "MyFunctionalities")]