После перехода Selenium Tests к ядру dotnet 2.1 я получаю сообщения об ошибках типа:
"Оценка функции 'OpenQA.Selenium.Support.Events.EventFiringWebDriver.CurrentWindowHandle.get' истекла и потребоваласьнебезопасным образом прервать работу.
Я следовал за ответами на другие вопросы, в которых предлагается отключить средство повышения резкости и включить «использовать режим управляемой совместимости» & «использовать устаревшие эмуляторы выражений c # и VB» впараметры Visual Studio 2019. Ни один из них не позволяет отладочной оценке работать в netcore2.1
Если я изменю проект на целевой net461, проблема исчезнет, и отладочные оценки будут работать правильно . IМне было интересно, почему это так и существуют ли какие-либо рабочие решения для этой проблемы, кроме отключения отладочных оценок.
Обновление: После дополнительной проверки это, как представляется, вызвано присоединением события, котороеделает некоторые записи. Для моего случая использования эта запись не должна бытьв режиме отладки, так что я могу обойти проблему, но мне все еще любопытно, почему это происходит.Ниже приведен воспроизводимый пример.
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);
}
}