Онлайн-образование. Правила вебинара

Содержание

Слайд 2

Не забыть включить запись!

Не забыть включить запись!

Слайд 3

Меня хорошо слышно && видно?

Меня хорошо слышно && видно?

Слайд 4

Активно участвуем, стараемся не залипать в одну точку и не клевать носом

Активно участвуем, стараемся не залипать в одну точку и не клевать носом

(Хотя, если уснете, мы вас не покусаем)
Как только появляются вопросы, не стесняемся спрашивать любыми доступными методами!
Вопросы и дискуссии не по теме занятия обсуждаем в Slack или любыми другими способами, не мешающими ходу занятия
Все вопросы вижу, если не отвечаю, значит отвечу чуть-чуть позже (если вы прямо уверены, что я пропустил, то можно сказать голосом) ;)

Правила вебинара

Слайд 5

Преподаватель

В тестировании более 13 лет 
Преимущественно работаю над большими корпоративными проектами (Citibank, ВТБ,

Преподаватель В тестировании более 13 лет Преимущественно работаю над большими корпоративными проектами
Русгидро, Ингосстрах)
Тестирую как бэк, так и фронт.
Языки: Java, С#

Александр Суворов Epam, Senior QA

Слайд 6


Какие виды ожиданий вы знаете?

Какие виды ожиданий вы знаете?

Слайд 7

После занятия вы сможете:

1

Уверенно различать Implicit Waits и Explicit Waits

2

Использовать Expected Conditions

Попрактиковаться

После занятия вы сможете: 1 Уверенно различать Implicit Waits и Explicit Waits
в написании теста

3

Цели вебинара

Слайд 8

Задержка и виды ожиданий

Ожидания Задержка

Implicit Thread.sleep()
Explicit
Fluent

Задержка и виды ожиданий Ожидания Задержка Implicit Thread.sleep() Explicit Fluent

Слайд 9

Задание

Задание

Слайд 10

Кто такие ожидания и с чем их едят

Ожидания нужны для синхронизации работы

Кто такие ожидания и с чем их едят Ожидания нужны для синхронизации
тестируемого приложения и тестового скрипта

Было ли у вас когда-нибудь такое, что элемент на странице не успевал появиться из-за скорости интернета?
А бывало такое, что какое-то всплывающее окно перекрывало область клика?
А такое, что вы вставляли в код Thread.sleep(#бесконечностьнепредел), чтобы дождаться загрузки сайта?

Слайд 11

Неявные ожидания

findElement(s)

driver.manage().timeouts().implicitlyWait(4, SECONDS); driver.findElement(By.cssSelector("div.super"));

4 s

element Id

Неявные ожидания findElement(s) driver.manage().timeouts().implicitlyWait(4, SECONDS); driver.findElement(By.cssSelector("div.super")); 4 s element Id

Слайд 12

Неявные ожидания

Что вернет драйвер, когда найдет элемент по команде findElement?
Что вернет драйвер,

Неявные ожидания Что вернет драйвер, когда найдет элемент по команде findElement? Что
когда найдет элементы по команде findElements?
Что вернет драйвер, когда НЕ найдет элемент по команде findElement?
Что вернет драйвер, когда НЕ найдет элементы по команде findElements?
После того, как юзер жмет на кнопку, с интервалом в 1 секунду появляются картинки. Всего картинок 10. Через какое время и что именно вернет драйвер, если implicityWait = 12 sec и выполняется команда findElements(By.tagName("img"))

Слайд 13

Явные ожидания, Explicit

WebDriverWait wait = new WebDriverWait(driver, 10L, 125L); wait.until(drv -> drv.findElements(By.cssSelector("div.super")).size() >

Явные ожидания, Explicit WebDriverWait wait = new WebDriverWait(driver, 10L, 125L); wait.until(drv ->
10);

10 s

driver = new ChromeDriver();
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement element = wait.until(ExpectedConditions.elementToBeClickable(locator));

Слайд 14

Expected conditions

ExpectedConditions
elementToBeClickable()
elementToBeSelected()
visibilityOfElementLocated()
presenceOfElementLocated()

https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html

Expected conditions ExpectedConditions elementToBeClickable() elementToBeSelected() visibilityOfElementLocated() presenceOfElementLocated() … https://www.selenium.dev/selenium/docs/api/java/org/openqa/selenium/support/ui/ExpectedConditions.html

Слайд 15

Явные ожидания, Fluent

driver = new ChromeDriver();
FluentWait wait = new FluentWait(driver)
            .withTimeout(7, TimeUnit.SECONDS)
            .pollingEvery(500, TimeUnit.MILLISECONDS)
           .ignoring(NoSuchElementException.class);

Явные ожидания, Fluent driver = new ChromeDriver(); FluentWait wait = new FluentWait

Слайд 16

Задание

Implicit(5) + Explicit(7) = ?

Задание Implicit(5) + Explicit(7) = ?

Слайд 17

Задание

Задание

Слайд 19

На нашей стороне

В браузере

На нашей стороне В браузере

Слайд 20

На нашей стороне

В браузере

Ждем появления элемента в DOM

Сами решаем

На нашей стороне В браузере Ждем появления элемента в DOM Сами решаем

Слайд 21

На нашей стороне

В браузере

Ждем появления элемента в DOM

Сами решаем

На нашей стороне В браузере Ждем появления элемента в DOM Сами решаем

Слайд 22

На нашей стороне

В браузере

Ждем появления элемента в DOM

Сами решаем

Перепроверяет чаще (100)

Реже (500),

На нашей стороне В браузере Ждем появления элемента в DOM Сами решаем
но можно менять

Слайд 23

На нашей стороне

В браузере

Ждем появления элемента в DOM

Сами решаем

Перепроверяет чаще (100)

Реже (500),

На нашей стороне В браузере Ждем появления элемента в DOM Сами решаем
но можно менять

1 запрос – 1 ответ

N

Слайд 24

На нашей стороне

В браузере

Ждем появления элемента в DOM

Сами решаем

Перепроверяет чаще (100)

Реже (500),

На нашей стороне В браузере Ждем появления элемента в DOM Сами решаем
но можно менять

1 запрос – 1 ответ

N

NoSuchElement

Timeout

Слайд 25

На нашей стороне

В браузере

Ждем появления элемента в DOM

Сами решаем

Перепроверяет чаще (100)

Реже (500),

На нашей стороне В браузере Ждем появления элемента в DOM Сами решаем
но можно менять

1 запрос – 1 ответ

N

NoSuchElement

Timeout

Слайд 26

Итоги, тезисы

1 Ожидания или задержка
2 Implicit/Explicit/Fluent что выбрать

Итоги, тезисы 1 Ожидания или задержка 2 Implicit/Explicit/Fluent что выбрать

Слайд 27

Практическая часть!

Задание:
Зайти на сайт https://ng-bootstrap.github.io/#/components/alert/examples
Найти блок
Если нажимать раз в секунду на кнопку,

Практическая часть! Задание: Зайти на сайт https://ng-bootstrap.github.io/#/components/alert/examples Найти блок Если нажимать раз
то в всплывающем блоке будет меняться текст
Имплементировать тест на сверку двух значений внутри блока текста после первого нажатия и после второго (интервал 1,5 секунды)

Слайд 28

Домашнее задание

Реализуйте автоматический тест, используя Java + Selenium
Шаги теста:
- Открыть в Chrome

Домашнее задание Реализуйте автоматический тест, используя Java + Selenium Шаги теста: -
сайт Яндекс.Маркет – “Электроника” -> “Смартфоны”
- Отфильтровать список товаров: Samsung и Xiaomi
- Отсортировать список товаров по цене (от меньшей к большей)
- Добавить первый в списке Samsung
-- Проверить, что отобразилась плашка "Товар {имя товара} добавлен к сравнению"
- Добавить первый в списке Xiaomi
-- Проверить, что отобразилась плашка "Товар {имя товара} добавлен к сравнению"
- Перейти в раздел Сравнение
-- Проверить, что в списке товаров 2 позиции
Домашнее задание принимается в виде ссылки на GitHub репозиторий

Слайд 29

Что вы теперь знаете?

Рефлексия

С какими основными мыслями и инсайтами уходите  с

Что вы теперь знаете? Рефлексия С какими основными мыслями и инсайтами уходите
вебинара

Каких целей вебинара не удалось достичь 

?

Слайд 30

Что вы теперь знаете?

Опрос

Заполните, пожалуйста, опрос о занятии по ссылке в

Что вы теперь знаете? Опрос Заполните, пожалуйста, опрос о занятии по ссылке в чате
чате
Имя файла: Онлайн-образование.-Правила-вебинара.pptx
Количество просмотров: 21
Количество скачиваний: 0