Loading...
Malomir avatar Malomir 0 Точки

Изпреварващо натискане на inbox в АБВ

Проблема е в това, че бутона inbox го има и на страницата за писане на съобщението и докато натиска бутона SEND натиска и INBOX, вместо да изчака да зареди следващата страница и там да натисне INBOX. Така хем ми зарежда страницата, че съощението е изпратено (тук искам да натисне INBOX), хем изскача запитване дали искам да прекратя писането на съобщението и именно това ми прецаква теста, въпреки че показва, че е изпълнен без грешка.
Как да отложа кликането на INBOX доакто зареди следващата страница?

0
QA Fundamentals 14/08/2015 14:29:25
IBraynov avatar IBraynov 74 Точки

Добави Thread.sleep(3000); , където искаш да изчака

 

0
14/08/2015 14:51:03
RoYaL avatar RoYaL Trainer 6849 Точки

По принцип правилният вариант е да се ползва Explicit wait. Но това включва библиотеки и класове, които не се изучавали. Ако ти е интересно, можеш да прегледаш някой пример из StackOverflow

http://stackoverflow.com/questions/20077860/selenium-webdriver-explicit-wait

http://stackoverflow.com/questions/11736027/webdriver-wait-for-element

Идеята е първо да изчакаш да се появи, че съобщението е изпратено успешно и тогава да кликнеш Входяща кутия.

Правиш си този wait и после му казваш да чака докато (until) примерно не се появи елемента, в който пише че съобщението е изпратено успешно.

И чак след това кликаш Входящи :)

P.S.: В C# този експлицитен wait мисля, че работеше с lambda expressions

2
14/08/2015 16:22:21
IBraynov avatar IBraynov 74 Точки

Ясно. А моето паузира самото изпълнение на кода.

0
Malomir avatar Malomir 0 Точки

Супер, получи се. Направих го така:

WebDriverWait wait = new WebDriverWait(driver, 1);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.abv-h2")));

 

Преди това пробвах така:

WebElement sendSuccess = driver.findElement(By.cssSelector("div.abv-h2"));
assertEquals("Писмото беше изпратено успешно!", sendSuccess.getText().trim());

Но имам проблем с кирилицата в IntelliJ, който не се оправи с решението тук във форума, но ще се поразровя да го оправя.

0
IBraynov avatar IBraynov 74 Точки

Виж в Control Panel на windows, Region, Administrative, Language for non-Unicode programs, Change system locale и избираш Bulgarian, ако не е ти е в момента така настройката.

0
nrayanov avatar nrayanov 39 Точки

Здравей,

Аз имах подобен проблем. Ванката ми каза да го направя с Thread:

Thread.sleep(3000);

Поздрави,

Николай Раянов

 

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.