господи, спасибо ОГРОМНОЕ! Пыхтела с этим Page Object часа 2, пока не нашла ваше видео. Пыталась сделать так же, но интуитивно. Застряла на моменте с инициализацией драйверов. ЛАЙК!
6:31 А зачем вы в page object кладёте уже данные, когда их надо класть в тесте самом? (admin,changeme). Условия написали длинно, можно и короче раз два условия всего. Заложить бы данные параметризованные и тогда на успешный логин и неуспешный один тест был бы. Не совсем понял почему Вы локаторы не вынесли отдельно в LoginPage, они же тоже могут повторяться.
@@ivanstrelka3448 в данном видео используется Selenium + TestNG. Рекомендую следующим шагом ознакомиться с Selenide - код будет короче, нагляднее. Так же рекомендую поработать с Selenoid - удобно и быстро развернет окружение с браузерами. - testng.org/doc/ - github.com/aerokube/selenoid - www.selenium.dev/
проверять нахождение на целевой странице можно, если писать локаторы отталкиваясь от контейнера: локатор целевой страницы. локатор элемента страницы, тогда мы не нажмем кнопку там где не надо
метод enterUserName и enterPassword принимают на вход стрингу, которая в последствии никак в них не используются. По сути в методах захардкоженные значения "admin" и "changename"... это конфузит.
для начинающих отличное видео ) Но чем больше углубляться в паттерны автотестов, тем больше творческой работы) PageObject только верхушка , а все интересное внизу))
Мартин Фаулер в своём описании паттерна PageObject подчеркивает, что он не должен равняться странице: Despite the term "page" object, these objects shouldn't usually be built for each page, but rather for the significant elements on a page
Спасибо, Владимир - вы правы. Следующее видео «ХардКод» объяснит, как делать лучше. В этом видео все внимание сосредоточено на том как начать применять PageObject и что бы не перегружать его информационно я не акцентировал на этом внимание.
Надеюсь эта ветка ещё живая Появился вполне закономерный вопрос, ответа на который, как ни странно, нигде не смог найти... Есть допустим у меня сайдбар, который одинаков на 80% страниц моего приложения. Как хэндлить такую ситуацию? Копипастить в эти самые 80% классов? Было бы логично вынести его в отдельный класс. Но! Что, если у меня таких объектов, как этот сайдбар несколько десятков - хэдеры, футеры, всплывающие окна, строки поиска, просто дублирующиеся на нескольких страницах элементы? Плодить кучу классов, помимо собственно страниц?
Хороший вопрос! Коротко - да, я так бы и делал. Если это не сработает или упретесь в какой-то нюанс - пишите новый комментарий - мне будет интересно узнать детали. Удачи!
Вообще ничего не понял🥲 в двух словах это вообще о чем? Если что изучаю автотестирование на питон, но в целом должно же быть что то понятно? Это что то вроде images = pytest.driver.find_elements(By.XPATH, "//tbody//img"), только вместо "//tbody//img", я создаю стороннюю переменную, куда кладу этот локатор? Чтобы при изменении не пришлось менять локатор во всех тестах.
Большое спасибо! Вопрос! На 3:04 Вы говорите про 100-200-300 подобных тестов на разную функциональность. А можно, пожалуйста, примеры такой функциональности? Спасибо!
Спасибо, за вопрос Richard. Представьте себе Profile Page - в которой вам необходимо получить отчет о действиях пользователя, изменить права. Добавьте к этому набор дополнительных опций "включить выходные дни", "исключить пустые поля", "разрешить", "запретить". Так же добавьте к этому негативные сценарии и получиться хорошая пачка тестов с совпадающими предварительными шагами.
А когда уже уйдет образ что айтишники задроты и мальчики зайчики. Можно было одеть рубашку поприличнее , в зал пойти лишний вес спалить и снять эти дурацкие очки хоть на момент записи
@@iloveand120010 парни смотрите видео о программистах от психолога Вероники Степановой . У вас после просмотра есть 2 варианта , ещё сильнее обидеться или сделать выводы, возможно что то поменять.
Как сказал бы Фромм - вы батенька по части никрофилии любитель будете...если книги толще колобка вам не по зубам - послушайте того кто уже ознакомился и сложил своё мнение th-cam.com/video/fYWSud-mZew/w-d-xo.html
господи, спасибо ОГРОМНОЕ! Пыхтела с этим Page Object часа 2, пока не нашла ваше видео. Пыталась сделать так же, но интуитивно. Застряла на моменте с инициализацией драйверов. ЛАЙК!
P.S Презентация во вложениях к уроку тоже помогла. Это я к тому, что она там не зря ;)
Раді, що були корисні 💪
Как же здорово, что представлены наглядные примеры кода! Все понятно и доступно!
I guess it is quite randomly asking but do anybody know of a good site to stream newly released tv shows online?
@Crew Sawyer Flixportal =)
@Alden Ezra thanks, signed up and it seems like they got a lot of movies there =) I really appreciate it !
@Crew Sawyer you are welcome =)
Удачный формат - код+видно того, кто рассказывает! Ощущение, будто разговор face to face, а не сухое изложение информации)
толково расписано, спасибо. Помогает на наглядном примере объяснить: "зачем автотестеру знать об инкапсуляции"
Рады, что было полезно!
Спасибо огромное за толковое объяснение! У вас редкий талант доходчиво и наглядно объяснять.
Раді, що стали в нагоді 💙
Спасибо за доступное объяснение! Стало понятнее, куда копать дальше
Использование PageObject облегчает чтение и работу с кодом, - доступно изложена тема!
Отличное объяснение, очень доступно! Мне понравился "бонус" - проверка, что мы находимся на нужной странице, нужная штука.
Спасибо за видео. Очень удобный формат (короткие видео) для того, что освежить в памяти основные моменты по Page Object
Спасибо Hillel и в частности Артуру! Очень структурированно изложена вся информация, видео было полезно
6:31 А зачем вы в page object кладёте уже данные, когда их надо класть в тесте самом? (admin,changeme). Условия написали длинно, можно и короче раз два условия всего.
Заложить бы данные параметризованные и тогда на успешный логин и неуспешный один тест был бы.
Не совсем понял почему Вы локаторы не вынесли отдельно в LoginPage, они же тоже могут повторяться.
1:30 - нет события нажатия на кнопку "Войти". Тест упадет
спасибо, хорошо и доступно объяснили...
Дякуємо, що дивитесь 💙
Супер, здорово объяснил, да еще с примером.
Спасибо за объяснение!
Пишите свои варианты тем с которыми не удалось до конца разобраться - разберемся вместе =)
Привет. Спасибо за видео. А что за фреймворк гэп? Можешь ссылку скинуть? Спасибо
@@ivanstrelka3448 в данном видео используется Selenium + TestNG. Рекомендую следующим шагом ознакомиться с Selenide - код будет короче, нагляднее. Так же рекомендую поработать с Selenoid - удобно и быстро развернет окружение с браузерами.
- testng.org/doc/
- github.com/aerokube/selenoid
- www.selenium.dev/
@@ivanstrelka3448 наверно имелось в виду gebish.org
@@serjpavlenko спасибо
проверять нахождение на целевой странице можно, если писать локаторы отталкиваясь от контейнера: локатор целевой страницы. локатор элемента страницы, тогда мы не нажмем кнопку там где не надо
метод enterUserName и enterPassword принимают на вход стрингу, которая в последствии никак в них не используются. По сути в методах захардкоженные значения "admin" и "changename"... это конфузит.
Тот же вопрос в голове)
if (...) {
return true;
} else {
return false;
}
это конечно сильно))
Код для новичков =) Вы уже переросли этот код =)
для начинающих отличное видео ) Но чем больше углубляться в паттерны автотестов, тем больше творческой работы) PageObject только верхушка , а все интересное внизу))
Спасибо за видео! Доступные обьяснения на очень нужную тему!
спасибо
Мартин Фаулер в своём описании паттерна PageObject подчеркивает, что он не должен равняться странице:
Despite the term "page" object, these objects shouldn't usually be built for each page, but rather for the significant elements on a page
Благодарю. Пора выпустить новое видео.
Нет никаких Мартинов Фаулеров! Выдумки это всё! Есть только Генка из шестого "б", а всё остальное - чистейшей воды вымысел!
Хорошее видео.Спасибо
Отличное объяснение!
Приятно слышать!
Удалоь применить знания?
@@DigitalNomad-j2e Да, к тому же я сейчас прохожу интервью и про Page Object Model часто спрашивают, просят подробнее объяснить.
Посмотрел чтобы убедится что я правильно понимаю.
Почему в классе страницы методы заполнения полей логина и пароля заполняют их не параметрами методов, а захардкожеными значениями (слайд 11)???
Спасибо, Владимир - вы правы.
Следующее видео «ХардКод» объяснит, как делать лучше.
В этом видео все внимание сосредоточено на том как начать применять PageObject и что бы не перегружать его информационно я не акцентировал на этом внимание.
@@DigitalNomad-j2e а где это следующее видео можно глянуть?
Ссылки на pastebin, которые забыли вставить в описание к видео
Test: pastebin.com/s2MKg0s5
PageObject: pastebin.com/myW0LHSc
Благодарю!
У нас тут созревает отличное комьюнити =)
Надеюсь эта ветка ещё живая
Появился вполне закономерный вопрос, ответа на который, как ни странно, нигде не смог найти...
Есть допустим у меня сайдбар, который одинаков на 80% страниц моего приложения.
Как хэндлить такую ситуацию? Копипастить в эти самые 80% классов?
Было бы логично вынести его в отдельный класс. Но! Что, если у меня таких объектов, как этот сайдбар несколько десятков - хэдеры, футеры, всплывающие окна, строки поиска, просто дублирующиеся на нескольких страницах элементы? Плодить кучу классов, помимо собственно страниц?
Хороший вопрос!
Коротко - да, я так бы и делал. Если это не сработает или упретесь в какой-то нюанс - пишите новый комментарий - мне будет интересно узнать детали. Удачи!
Как вариант можно вынести все повторяющиеся элементы в один класс и обозвать как-нибудь вроде CommonComponents, MasterPage
PageObject классный паттерн, очень наглядно
Вообще ничего не понял🥲 в двух словах это вообще о чем? Если что изучаю автотестирование на питон, но в целом должно же быть что то понятно? Это что то вроде images = pytest.driver.find_elements(By.XPATH, "//tbody//img"), только вместо "//tbody//img", я создаю стороннюю переменную, куда кладу этот локатор? Чтобы при изменении не пришлось менять локатор во всех тестах.
Есть видео про базовые классы (общие)? Хотелось бы посмотреть пример.
Большое спасибо! Вопрос! На 3:04 Вы говорите про 100-200-300 подобных тестов на разную функциональность. А можно, пожалуйста, примеры такой функциональности? Спасибо!
Спасибо, за вопрос Richard.
Представьте себе Profile Page - в которой вам необходимо получить отчет о действиях пользователя, изменить права. Добавьте к этому набор дополнительных опций "включить выходные дни", "исключить пустые поля", "разрешить", "запретить". Так же добавьте к этому негативные сценарии и получиться хорошая пачка тестов с совпадающими предварительными шагами.
Хороший доклад
Спасибо, приятно слышать =)
Артур, движение указки на слайде не видно к сожалению( Але доклад супер, Дякую!
Ruslan Hasiuk спасибо - попробуем что-то придумать)
Четенько
Приятно слышать!
Удалось применить знания?
А когда уже уйдет образ что айтишники задроты и мальчики зайчики. Можно было одеть рубашку поприличнее , в зал пойти лишний вес спалить и снять эти дурацкие очки хоть на момент записи
по ходу у тебя питон вдвое меньше чем ЧСВ.
Молодой человек. Тут подают знания, а не внешний вид. Если вам что-то не нравиться то можете смело идти за вином=)
@@iloveand120010 парни смотрите видео о программистах от психолога Вероники Степановой . У вас после просмотра есть 2 варианта , ещё сильнее обидеться или сделать выводы, возможно что то поменять.
Как сказал бы Фромм - вы батенька по части никрофилии любитель будете...если книги толще колобка вам не по зубам - послушайте того кто уже ознакомился и сложил своё мнение th-cam.com/video/fYWSud-mZew/w-d-xo.html