TGViewer
qa семпай про тестування qa семпай про тестування @qa_advice · 3.12K subscribers
Post #44 528
Подивився деякі доповоді з рос конференції для тестувальників.
Доповіді не дуже цікаві, але для себе декілька ідей для наступних відео взяв.

Ось коротке самарі доповіді:
особливість їх роботи полягає в тому, що вони регулярно проводять А/Б тестування деяких сторінок.
Що призводить до регулярної їх зміни.

Вони ділять ці зміни на три категорії складності:

1️⃣ незначні зміни в DOM моделі сторінки
2️⃣ додавання/прибирання елемента на сторінці
3️⃣ зміна сторінки повністю

Як вони пропонують боротись з першими двома рівнями складності?
1️⃣ В першому випадку вони просто додають в їх selector умови по типу OR (//*[@title='Annotate' or text()='Annotate'])
2️⃣ якщо елементи змінюються, вони використовують в свої тестах if else

public SetConfirmation CodePagePromise click ContinueButton() {
}
if (baseFunc.explicitWait (ExpectedConditions.invisibilityOfElementLocated (CONTINUE_BUTTON)).isSuccess()) { LOGGER.info(message: "Трапився автосабмит кода", bаse Func. takeScreenshot());
} else {
}
LOGGER.info(message: "Натискаємо кнопку 'Далі'", base Func. takeScreenshot());
baseFunc.click(CONTINUE_BUTTON);
return new SetConfirmationCodePagePromise(baseFunc);

особисто я вважаю використання if else не дуже вдалим рішенням, але як адаптуватись під зміни без цього... я поки хз.

3️⃣ як вони працюють з різними сторінками?
Якщо коротко, вони просто перевіряють наявність специфічного для сторінки елемента, і в залежності від цього повертають правильний PageObject. Для цього використовують фабричний метод.

Фабричний метод — це породжувальний патерн проектування, який визначає загальний інтерфейс для створення об’єктів у суперкласі, дозволяючи підкласам змінювати тип створюваних об’єктів.

public static boolean isPopupLogin() {
return $(SHOW_PASSWORD_BUTTON).isDisplayed();
}

public static boolean isNewAnonymPage() {
return $(OK_LOGO).isDisplayed();
}

public static LoginPage get (Base Func baseFunc) { if (isPopupLogin (base Func)) {
return new Login Popup (base Func);
}
else if (isNewAnonymPage (base Func)) { return new NewAnonymLoginPage (baseFunc); }
else {return new OldLoginPage (base Func)
; }

він там щє розповідав як вони створюють тестових юзерів (ботів), але то таке... дуже специфічна тема для кожного окремого проекту метод буде свій.

➡️➡️➡️

Якщо вам цікаві огляди доповідей конференцій проголосуйте
👍 - якщо робити такі огляди
👎🏻 - якщо не треба.
пишіть коментар - якщо треба, але англомовних
GitHub test-automation-example/cheat-sheets/xpath.md at main · qa-senpai/test-automation-example Contribute to qa-senpai/test-automation-example development by creating an account on GitHub.
  • 👍 13
  • ❤ 1
  • 👎 1
More from @qa_advice
  1. Oct 14, 2026Так як останні 3 місяці я трохи поїхав кукухою на агентній розробці (став професійним слоп…
  2. Oct 9, 2026ПОЧАЛИ! https://www.youtube.com/watch?v=8VAzB51nEYs
  3. Oct 9, 2026З'явився новий Playwright 1.64, наче свіжа роса на листі лотоса. Справжній майстер знає, щ…
  4. Oct 8, 2026🎙 17–18 жовтня братиму участь у дискусіях на Бетельгейзе-2026 У професійних обговореннях…
  5. Oct 7, 2026Відосік зі стріма як AIшка вплинула на аутсорс? 📱 https://www.youtube.com/watch?v=DUvn2ko…
  6. Oct 6, 2026Стартуємо о 20:00 📱 YouTube Live: https://youtube.com/live/k1QW9AN-UNw?feature=share
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →