Как да проследявате и затваряте изскачащи прозорци (Selenium WebDriver, C #) - VictorZ Бележки

Технологичният стек, който използвам, когато пиша автоматизирани тестове: C #, NUnit, Selenium WebDriver.

Знанието къде и кога ще се появи банер, което вече знаем, е невъзможно. Изскачат като дяволи от табакера. Ако ги затворите на една страница, след определено време тя ще отскочи до друга. Във външния им вид също няма логика (опитах се да определя). В резултат на това стана необходимо да се „унищожат“ тези банери. Но е лесно да се каже да, не е лесно да се направи.

Проблеми, които възникват:
- банери се появяват на различни страници и не едновременно.

Не можем да кажем точно кога и къде ще се появи банерът, така че не можем да посочим ясно в кода на автоматичните тестове „отворете страницата за плащане“ - „изчакайте банера да се появи“ - „затворете банера“. Той може просто да не се появи, тъй като се е появил на друга страница и сега ще се появи някъде другаде, но не и там, където се опитвате да го изчакате и ако не чакаме, тестът ще падне. Тази ситуация ме накара да потърся нестандартно решение. И тогава ми хрумна мисълта за многопоточност. Долният ред е прост: в една нишка се изпълняват тестове, в друга нишка проследяваме появата на банери и ги премахваме. Не по-рано казано, отколкото направено.