Я пытаюсь запустить некоторые базовые тесты Selenium в .Net Core с помощью тестовой среды Nunit.
У меня установлены следующие пакеты Nuget:
Selenium.Support
Selenium.Helper
Selenium.WebDriver
Selenium.WebDriver.ChromeDriver
Selenium.WebDriver.IEDriver
Selenium.WebDriverBackedSelenium
При запуске любого модульного теста я получаю
"Message: OpenQA.Selenium.WebDriverException : Cannot find a file named
'D:\SeleniumTests\SeleniumTests.OldFramework\bin\Debug\isTextPresent.js' or
an embedded resource with the id 'isTextPresent.js'."
Поиск в Интернете не помог. я нашел это как использовать WebDriverBacked Selenium , Я попробовал одно из включенных предложений, но это не помогло. Я также воссоздал тест в .Net Framework, чтобы убедиться, что это проблема Core, но все еще вижу сбои.
Документации об отсутствии этого файла не так много, я ожидал, что они появятся в пакете Nuget, установка вручную не кажется очень удобной в обслуживании, и я не видел ни одного руководства, в котором упоминалась бы установка файлов js вручную.
Вот мой единственный тест.
[TestCase]
public async Task ChromeTest1()
{
driver = new ChromeDriver();
var sometthing = new Selenium.WebDriverBackedSelenium(driver, "https://www.google.com");
sometthing.Click(By.LinkText("Search").ToString());
driver.Quit();
sometthing.Close();
Assert.True(sometthing.GetTitle() == "");
}
Есть ли какой-то секрет, как заставить это работать? Я что делаю неправильно? Селен - это просто китайская розыгрыш?
Я мог обойти это только путем перехода на WebDriverBackedSelenium версии 3.5.2. Начиная с версии 3.6.0, я получаю сообщения об отсутствии файлов .js.
Это комментарий, а не ответ.
Потому что вы не предоставили достаточно подробностей о том, ПОЧЕМУ.
Итак, для моего понимания - если я знаю потенциальное решение, которое может помочь некоторым людям, но я не знаю, почему оно работает, мне не следует его публиковать?
Да, конечно. Потому что, хотя это может показаться очень полезным (и я понимаю, что это все, что вы пытались сделать), на самом деле это может быть не ответ. - Это может выглядеть так, как будто это работает, или работать при очень строгих условиях. Пока вы не поймете, ПОЧЕМУ что-то делает то, что делает, вам не следует предлагать это в качестве окончательного ответа. Это все равно что принимать лекарство, а также нюхать цветок - тогда, когда вам станет лучше, если вы не знаете, какое лекарство вылечило вас, вы можете предложить понюхать цветы кому-то другому, потому что это коррелирует с работой на вас.
WebDriverBackedSelenium полагается на изрядное количество кода JavaScript. Код должен быть сгенерирован в процессе сборки Selenium (который требует действий, внешних по отношению к Visual Studio). Последующие файлы JavaScript должны быть встроены в сборку до ее выпуска через NuGet. Конечно, вполне возможно, что что-то непредвиденное изменилось, и это не так.