Вы учитывайте еще тот факт что я дней 10 как пишу что-то вообще на webrdiver …
И то как я это вижу, что сейчас слишком много у меня повторяющегося кода … Думаю все это выкинуть в отдельный файл с функциями и вызывать уже потом функции, а в них просто передавать параметры … что-то типа FindElementByIdAndClick (параметр);
Если Вы только начинаете и у Вас нет ограничений по использованию библиотек и фреймворков, то сразу используйте Selenide. Полагаю, что он снимет основные вопросы, с которыми Вы сейчас столкнулись.
А стоит вообще сразу стартовать с фреймворков? Не лучше ли для начала поковырять код немного самому?
И если не сложно дайте посмотреть вообще хороший код просто понять куда двигаться … у меня вот что пока получается …
// заполняем поле E-mail
String email = "ivan85" + "+" + System.currentTimeMillis() + "@gmail.com";
WebElement selectMail = driver.findElement(By.id("reg_email"));
selectMail.sendKeys(email);
// заполняем первое поле фамилия
WebElement selectSurname = driver.findElement(By.id("last_name"));
selectSurname.sendKeys("Иванов");
// заполняем первое поле имя
WebElement selectName = driver.findElement(By.id("first_name"));
selectName.sendKeys("Иван");
// заполняем первое поле отчество
WebElement selectPatronymic = driver.findElement(By.id("middleName"));
selectPatronymic.sendKeys("Иванович");
// выбираем из списка по значению value и через wait ждем ответа в течении 10 секунд
WebElement tmp = driver.findElements(By.id("organization")).get(0);
Select selDr = new Select(tmp);
WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.className("select2-search__field")));
selDr.selectByValue("E60EE044-341C-4679-BAEA-492B50F6DA6C");
Лучше конечно попробовать написать обертки самому, может они вас устроят и одну зависимость ты можете выкинуть. Плюс разберитесь с явными ожиданиями чтобы понять как вообще они работают, а потом уже когда осознаете что оберток нужно слишком много - обратитесь к готовым библиотекам.
Если время позволяет, то можно.
Я, например, сторонник глубокого понимания того, что ты используешь. И к использованию библиотек и фреймворков приходил постепенно. Писал, что-то своё, пока мне этого хватало, то всё ок. Когда своё разрасталось, смотрел на то, что уже есть похожего и подходящего и переходил если видел целесообразность.
Конечно есть исключения, например фреймворк для запуска тестов я сам не писал, а сразу взял TestNG
Тут смотрите по ситуации и что Вам необходимо на данный момент. Если нужны тесты которые будут что-то проверять и по-быстрее и по-стабильнее, от лучше сразу готовый фреймворк. Если пожара нет, а Вы хотите детально во всём разбираться, то начинайте с голого вебдрайвера. И детально разбирайтесь в нём.
+1. На работе обычно цель стоить - сделать, а не сидеть и обучаться за счёт работодателя в рабочее время, копаясь во внутренностях и разбираясь как оно и что работает.
Берите готовые решения, пилите тесты на них, а уж потом разбирайтесь.
Грустно, когда работодатель не заинтересован в развитии и повышении скиллов сотрудника. Вроде как это только повышает его в глазах сотрудника. Но смотря конечно в какой галере веслать.
Но ведь вы изучаете не основы плетения крестиком, а вещи которые в дальнейшем будете использовать в этой же работе. Хотя конечно тратить целый день на изучение селениума когда куча новых фич не протестирована руками не стоит.
Автору поста посоветовал бы погуглить примеры PageObject/PageFactory в интернете очень много примеров которые помогут расставить все на свои места.
Мне в свое время помог этот видос https://www.youtube.com/watch?v=zCjNOIp7p3c