网络核心调试错误:评估功能超时

时间:2019-05-06 16:50:57

标签: c# visual-studio selenium selenium-webdriver .net-core

已经将硒测试过渡到dotnet core 2.1,我收到如下错误:

  

“评估函数'OpenQA.Selenium.Support.Events.EventFiringWebDriver.CurrentWindowHandle.get'超时,需要以不安全的方式中止。

我已经遵循其他问题的答案,这些问题建议在Visual Studio 2019选项中关闭重新共享器,并打开“使用托管兼容模式”和“使用旧版c#和VB表达式模拟器”。这些都不允许调试评估在netcore2.1中工作

如果我将项目更改为目标net461,问题将消失并且调试评估可以正常工作。我想知道为什么会这样,除了关闭调试评估功能之外,是否还有其他可行的解决方案。

更新:经过更多检查,这似乎是由附加了事件并进行某些日志记录的事件引起的。对于我的用例,无需在调试模式下启用此日志记录,因此我可以解决此问题,但是我仍然很好奇为什么会发生这种情况。 下面是一个可重现的示例。

public class UnitTest1
{
    [Fact]
    public void Test1()
    {
        using (var driver = new EventFiringWebDriver(
            new ChromeDriver(Directory.GetCurrentDirectory())))
        {
            driver.ExceptionThrown += Driver_ExceptionThrown;
            driver.Navigate().GoToUrl("https://google.com"); //inspect driver here
            Assert.True(driver.FindElement(By.Id("gsr")).Displayed);
        }
    }

    private void Driver_ExceptionThrown(object sender, WebDriverExceptionEventArgs e)
    {
        //Even though this even is ever called,
        //being attached causes the error when attempting to view the driver above.
        Thread.Sleep(3000);
    }
}

0 个答案:

没有答案