Перейти к содержимому

jor77

Регистрация: 10 дек 2013
Offline Активность: 12 фев 2015 09:42
-----

Мои сообщения

В теме: Детект элементов на странице ошибки

15 апреля 2014 - 12:05



assertTrue(driver.findElements(By.tagName("parsererror")).size() == 0);

или 



assertTrue(driver.findElements(By.tagName("parsererror")).size() != 0);

В зависимости от того, чего желаете дальше делать. У вас кстати не опечатка ли там ? 'parseerror' или 'parsererror' ?

 

О! Точно! Что-то мне в голову не пришло, что по тэгам можно искать! Я тормоз :)

СПАСИБО!

 

P.S. Нет, не опечатка. Там именно 'parsererror'


В теме: Детект элементов на странице ошибки

15 апреля 2014 - 11:56

Укажите ошибку что вы получаете.

Какая версия браузера, селениума, на чём разрабатываете тесты.

То что вы привели непонятно.

Непонятно что непонятно :)

Селениум и файрфокс последних версий, пишу на Питоне, но не понимаю при чем здесь это?

Суть в чем: При переходе по какой-нибудь ссылке может возникнуть ошибка о которой и сигнализирует Файрфокс. Появляется желтая страница "ошибка синтаксического анализа...". Исходный код этой страницы я привел. Я хочу отлавливать появление этой страницы. Но у меня это не получается.

 

Можно попробовать так:







Assert.assertTrue(driver.getPageSource().contains("parsererror"));

Или как описано здесь

Спасибо, действительно, можно по исходному тексту страницы искать совпадение фразы. Но как-то некрасиво это, каждый раз исходник страницы перечитывать... Я думал, может какой прямой метод есть :)

А то что по ссылке, я, честно говоря, не очень понял :) 


В теме: Как изменить поведение WebDriver при UnexpectedAlertPresentException

15 апреля 2014 - 09:23

Ну, скажем так, я, наверное, немного не так выразился. Алерты не то чтобы сами закрываются. Конечно же возникает исключение UnexpectedAlertPresentException. Если его не обрабатывать, то, естественно, все валится по ошибке. Но если его обрабатывать, то алерт Селениумом закроется. Достаточно просто в обработчике исключения хоть что-нить прописать, хоть pass, хоть print - и алерт закроется селениумом автоматически, причем dismiss. Если пробовать при этом делать switch_to_alert() то алерта уже нет, его не существует, он уже закрыт.

Про капабилити я знал, но у меня не получалось никак сделать этот параметр как надо мне - ничего не менялось.

Теперь разобрался! :)  Спасибо за наводку. :) Я понял, что надо дальше копать в этом направлении :)  И, наконец, докопался :) Оказалось, что я неправильно с этими капабилитями работал :)  Теперь все нормально  - Алерт автоматически принимается.

Привожу рабочий вариант на Питоне, может кому пригодится.

 

from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

cap = DesiredCapabilities.FIREFOX
cap["unexpectedAlertBehaviour"] =  "accept"

driver = webdriver.Firefox(capabilities=cap)