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

Публикации jor77

6 публикаций создано jor77 (учитываются публикации только с 11 мая 2023)


#138888 Назад по истории на два шага

Отправлено автор: jor77 07 февраля 2015 - 09:26 в Selenium - Functional Testing

Доброе время суток, уважаемые!

 

Вопрос, возможно покажется странным :) Но возможно ли с помощью Селениума и Мозиллы переместиться по истории на два шага назад.

Два раза back не предлагать! Не работает! Дело в том, что сей хитрый сайт действует следующим образом:

1. кликаем переход по ссылке

2. начинает грузиться нужная страничка.

3. вдруг где-то на сервере считается, что произошла ошибка и генерируется URL по которому перенаправляется браузер.

4. Пока браузер что-то крутит/куда-то идет, ВНЕЗАПНО, генерируется еще один (другой) урл на страницу с ошибкой, куда браузер также идет, но на этом останавливается - загрузилась страница с ошибкой.

 

Теперь если нажать "Назад", то переход идет по ссылке из пункта 3. И, соответственно, перетекает в пункт 4.

Даже два раза быстро нажать "Назад" - не поможет!

Если руками на пару секунд удерживать кнопку "Назад", чтобы показалась история, и щелкнуть на два шага назад, то можно попасть туда куда надо было по пункту 2.

 

Вот и вопрос: Возможно ли с помощью Селениума в Мозилле перескакивать по истории на несколько шагов СРАЗУ?

 




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

Отправлено автор: jor77 15 апреля 2014 - 12:05 в Selenium - Functional Testing



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

или 



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

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

 

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

СПАСИБО!

 

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




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

Отправлено автор: jor77 15 апреля 2014 - 11:56 в Selenium - Functional Testing

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

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

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

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

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

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

 

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







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

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

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

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




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

Отправлено автор: jor77 15 апреля 2014 - 09:45 в Selenium - Functional Testing

Ребята, подскажите, пожалуйста... Я пока в этой теме не силен :)

Есть страница (возникающая ошибка в Файрфоксе). Помогите как ее задетектить? Как найти хоть какой-нить элемент? по xpath пробовал всякие варианты, но ничего не получается. Или здесь ничего нельзя задетектить?

Вот исходный текст страницы:

 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="yellow_files/intl.css" type="text/css"?>
<parsererror xmlns="http://www.mozilla.o...parsererror.xml">Ошибка синтаксического анализа XML: лишние данные после элемента документа
Адрес: https://xx.xxx.xx/xxx
Строка 36, символ 1:<sourcetext>0
^</sourcetext></parsererror>




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

Отправлено автор: jor77 15 апреля 2014 - 09:23 в Selenium - Functional Testing

Ну, скажем так, я, наверное, немного не так выразился. Алерты не то чтобы сами закрываются. Конечно же возникает исключение 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)




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

Отправлено автор: jor77 12 апреля 2014 - 12:29 в Selenium - Functional Testing

Добрый день, Уважаемые!

 

Использую Webdriver и Python.

Возникла следующая проблема:

    На сайте может возникать алерт при этом поднимается исключение UnexpectedAlertPresentException.

Прочитал, что Вебдрайвер для Файрфокса автоматически отклоняет эти алерты. Также пишут, что можно сделать так, чтобы эти алерты не отклонялись, а подтверждались. Или игнорировались, и тогда можно его обработать самому.  При попытке обрабатывать эти алерты  - ничего не выходит, так как Вебдрайвер глушит их до того, как что-то их сможет обработать.

Мне надо, чтобы эти алерты подтверждались! Ну, или хотя бы игнорировались, чтобы я сам их обработал.

Подскажите, пожалуйста, как это сделать?