Я начинаю новый курс об автоматизации / тестировании с помощью селена / веб-драйвера на Java.Для тестирования у нас есть веб-приложение на Python (использующее флешку), которое является просто базовым CRUD для записей / постов воображаемого блога.
Во время объяснения неявных и явных ожиданий, примером было вставить новую записьи ждать сообщения об успехе, используя неявное ожидание.Учитывая тот факт, что приложение фляги работает локально, оно не достаточно медленное, чтобы тестировать ожидания.Итак, профессор вставил «time.sleep ()» в метод ответа, чтобы возвращение сообщения могло занять больше времени.
Вот выдержка из метода ответа:
elapsed_time=randint(10,12)
time.sleep(elapsed_time)
flash("Entry '" + entry.title + "' created successfully." + str(elapsed_time), "success")
И в методе настройки нашего класса тестирования:
@Before
public void setUp() {
System.setProperty("webdriver.chrome.driver", "C:\\ChromeDriver\\chromedriver.exe");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS);
driver.get("localhost:5000");
}
Это, конечно, будет работать, потому что неявное ожидание установлено на 15 секунд, а приложение ответит не более 12 секунд.
Проблема в том, что если я установлю ожидание на 1 секунду, оно все равно будет работать, и даже если я удалю всю строку, оно все равно будет работать.(нет ошибки о том, что элемент не найден)
Я спросил профессора о том, почему это не сбой и почему он продолжает ждать больше, чем неявное ожидание, которое я установил (1 секунда), и он не был уверен.Он упомянул, что думает, что где-то есть время по умолчанию, но не дал мне никакой точности.
Итак, почему, если я устанавливаю неявное ожидание равным 1 секунде, это не дает сбоя при попытке найтисообщение?
Я что-то упустил?
Код для поиска сообщения:
String currentMessage = driver.findElement(By.xpath("/html/body/div[2]/div[1]/div[1]/div/span")).getText();
System.out.println(currentMessage);
assertTrue(currentMessage.contains("Entry 'My newest post' created successfully."));