Метод, помеченный [SetUp]
, запускается перед каждым тестом, см. документы .
Я думаю, что проблема заключается в следующем:
- Установочные прогоны,вход в систему
- Запуск Test1, передача
- После завершения Test1 программа установки запускается снова, но на этот раз вы уже вошли в систему, так как вы повторно используете сеансы браузера (или, по крайней мере, кажется, чтокод, который вы опубликовали), поэтому, когда метод установки ищет поле Company, его там нет.
Рекомендуется использовать один сеанс браузера на тест.Это гарантирует, что у вас будет самый чистый пробег, возможный каждый раз.Вам нужно добавить запуск браузера в свой метод [SetUp]
, а также добавить метод [TearDown]
, который завершает работу браузера.Вот как должны выполняться ваши тесты:
- Программа установки запускается, запускает браузер и регистрирует вас в
- Тест1 запускается, проходит
- TearDown запускается и закрывает браузер
- Программа установки запускается, запускает браузер и регистрирует вас в
- Test2 запускается, проходит
- TearDown запускается и закрывает браузер
Ваш метод TearDown долженбыть чем-то вроде (см. документы, связанные выше)
[TearDown]
public void Cleanup()
{
driver.Quit();
}
Примечание 1:
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(10);
На самом деле это не ожидание ... оно устанавливает время ожидания дляdriver
экземпляр.Он должен быть установлен только один раз и не должен использоваться снова, если вы не хотите изменить время ожидания на другое значение.Вы можете удалить все экземпляры этого, кроме первого, который должен быть в вашем методе установки.
Примечание 2: Авторы Selenium заявили, что не следует использовать ImplicitWait
.Вместо этого вы должны использовать WebDriverWait
.
. Примечание 3: Ваши тесты не должны выполняться в определенном порядке.Каждый тест должен быть независимым друг от друга и должен выполняться в любом порядке.