已经将硒测试过渡到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);
}
}