Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static List<WebElement> $$(WebDriver driver, List<WebElement> proxyElements) {
- /*
- во-первых, такой метод в принципе не нужен
- во-вторых - загляни - как устроен visibilityOfAllElements
- думаю, ты удивишься)
- */
- *****************************************
- public static void assertThat(WebDriver driver, int timeout, ExpectedCondition<Boolean> condition) {
- public static void assertThat(WebDriver driver, ExpectedCondition<Boolean> condition) {
- /*
- Или уже с дженерик-типами работай - для ExpectedCondition
- или не уточняйся до дженерик-типа для параметра condition
- не ExpectedCondition<Boolean>
- а ExpectedCondition
- пока - ты это можешь себе позволить
- пока assertThat возвращает результат типа void
- и тогда - уже сейчас - внутри метода $ - смжешь использовать assertThat
- */
- ************************************************
- public class Configuration {
- public static int timeout = 15;
- }
- /*
- тут таймаут выставь более традиционно
- в selenide например, значение по умолчанию = 4 секунды
- это неспроста)
- это так = т к большинству - этого достаточно
- тут - удобное для большинства значение
- а вот в самом тест-классе - установишь таймаут нужного тебе размера (вспомни селенидовскую версию)
- */
- ******************************
- public class BaseTest {
- /*
- напрасно для класа-предка не учел моих рекомендаций
- я на них настаиваю
- прошлое ревью, строки 148-160
- даже если у тебя лишь один потомок сейчас - код предка не должен на эти знания опираться
- и должен ок работать - сколько бы ни было у BaseTest потомков
- */
- ***************************
- textToBePresentInElement($$(driver, page.emails).get(0), subject)
- /*
- это - очень распространенная ошибка
- textToBePresentInElement - принимает первым параметром - WebElement
- НО - имеет смысл передавать туда - только прокси веб элемент (который сам аннотирован как @FindBy)
- даже если
- page.emails - прокси-список
- и $$(driver, page.emails) - тот же прокси-список
- то
- $$(driver, page.emails).get(0)
- или
- page.emails.get(0)
- это - НЕ прокси веб элемент
- и он - не будет переискиваться
- вспомни видео - как работает ждущая проверка
- загляни в apply кондишена textToBePresentInElement
- мы - просто оперируем переданным в кондишен вебэлементом
- если это прокси-элемент - он сам переискивается
- т к - так реализован
- а у нас - не прокси веб элемент
- мы как получили этот веб элемент
- так и все - он уже не меняется
- уже на странице - 10 раз все поменяться могло
- а мы все старыми сведениями оперируем
- тут - без новых кондишенов - таких как я описала в прошлый раз - не обойдешься
- как бы ты ни хотел)
- реализуй те 2 кондишена, что я описала в прошлый раз
- последняя проверка - не может быть выполнена - как проверка текста нулевого элемента списка
- подними селенидовскую версию, подними условие задания
- вспомни - что мы проверяем
- разве что текст самого первого письма содержит то-то?
- нет
- мы проверяем - что писам = 1 штука, и текст мейла этоко - содержит то-то
- но - как и в селенидовской версии - смотри на задачу шире
- на заужай ее
- реализуй - именно кондишен texts - для этой последней проверки
- если сложно - реализуй сначала одну проверку - отдай на ревью, потом - дальше продолжишь
- */
Advertisement
Add Comment
Please, Sign In to add comment