#java #selenium
#java #селен
Вопрос:
//This command is for scrolling into view of an element
public static void scrollIntoView(WebElement element, WebDriver driver) {
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", element);
}
//This command will make the script wait until a certain element is visible before doing any actions
public static void untilVisibility(WebElement element, WebDriver driver) {
WebDriverWait wait = new WebDriverWait(driver, Helper.TWENTY);
wait.until(ExpectedConditions.visibilityOf(element));
}
//This command will make the script wait until a certain element is clickable before doing any actions
public static void untilClickable(WebElement element, WebDriver driver) {
WebDriverWait wait = new WebDriverWait(driver, Helper.TWENTY);
wait.until(ExpectedConditions.elementToBeClickable(element));
}
Я использую эти три метода для своих тестовых примеров, но иногда скрипт по-прежнему не может дождаться видимости элементов, или даже если элемент отображается во время выполнения, он все равно терпит неудачу. Но когда я их повторно запускаю, они проходят индивидуально
Например, у меня 98 тестовых примеров, при первом запуске 20 завершатся неудачей, но когда я повторно запускаю 20 тестовых примеров, они проходят
Комментарии:
1. Вы можете попробовать перезагрузить страницу перед каждым тестом (если вы еще этого не сделали). Вы также можете попытаться найти меньший набор тестов, в которых есть эта проблема, что может сузить причину.
2. Как настроено ожидание? можете ли вы поделиться кодом?
Ответ №1:
Не могли бы вы предоставить сообщение об исключении? Я предполагаю, что исключение вызвано тем, что эти методы тестирования используют один и тот же объект, который не поддерживает одновременное использование, например, ввод-вывод файлов.
Комментарии:
1. Извините, что вы имеете в виду, говоря об исключении? Похоже ли это на сообщение об ошибке? Возвращаемая ошибка заключается в том, что скрипту не удается найти элемент через xpath, объявленный на моей странице. Но если я запускаю его независимо, он терпит неудачу
2. Да, это сообщение об ошибке. Выполняется ли выполнение этих методов с заказом в пуле потоков, например, исполнителями? Почему у них иногда возникают ошибки? Напротив, они верны. Не могли бы вы рассмотреть заказы на выполнение?