Может что-то вроде driver.switch_to.alert.accept() ?
- Форум тестировщиков
- → Публикации TatyanaV
72 публикаций создано TatyanaV (учитываются публикации только с 28 апреля 2023)
Отправлено автор: TatyanaV 15 октября 2019 - 08:22 в Автоматизированное тестирование
Может что-то вроде driver.switch_to.alert.accept() ?
Отправлено автор: TatyanaV 02 августа 2019 - 07:10 в Автоматизированное тестирование
Да, сталкивалась, решаю именно указанным мною способом.
Как вариант - пройтись дебаггером, чтобы четко отловить, на какой конкретно строчке "падает", почему не попадает в catch (может там не UnhandledAlertException, а какой-то другой эксепшн тест фейлит).
Ещё вариант, сделать catch (Exception e) и там первым делом выводить e.printStackTrace() (самостоятельно выведет в лог) или e.getLocalizedMessage() (просто текст, выводить в лог надо вручную).
Татьяна, большое спасибо!
Проблему решил, вставив закрытие алерта непосредственно перед снятием скриншота.
Тут, конечно, минус в том, что алерт не попадает в скриншот, но хотя бы тестовый набор продолжает выполняться дальше.
Так я ж написала - текст алерта Вы можете получить и вывести в лог перед тем, как его закрывать. Не будет его на скрине, но зато текст алерта Вы все равно будете в логах видеть.
Отправлено автор: TatyanaV 30 июля 2019 - 07:05 в Автоматизированное тестирование
Да, сталкивалась, решаю именно указанным мною способом.
Как вариант - пройтись дебаггером, чтобы четко отловить, на какой конкретно строчке "падает", почему не попадает в catch (может там не UnhandledAlertException, а какой-то другой эксепшн тест фейлит).
Ещё вариант, сделать catch (Exception e) и там первым делом выводить e.printStackTrace() (самостоятельно выведет в лог) или e.getLocalizedMessage() (просто текст, выводить в лог надо вручную).
Отправлено автор: TatyanaV 26 июля 2019 - 06:38 в Автоматизированное тестирование
Можно в лог выводить текст алерта, а потом закрывать его и фоткать страницу.
Отправлено автор: TatyanaV 24 июля 2019 - 13:36 в Selenium - Functional Testing
Я использую IntelliJ IDEA.
Когда мне нужно отладить какой-нибудь тест - просто запускаю его в дебаггере и дохожу до точки "перед тем участком, который надо отладить". Дальше уже не продолжаю выполнение кода дебаггером, а выполняю нужные мне "кусочки кода" в доп. тулзе Evaluate Expression. Если там что-то не так - тест в целом не падает, поэтому можно подкорректировать то, что нужно и попробовать снова.
Отправлено автор: TatyanaV 08 июля 2019 - 13:52 в Автоматизированное тестирование
А Вы уверены, что у COOKIE Вас правильно инициализированно?
Вроде бы первый параметр - имя (например, "ANID"), потом значение (например, "AHWqTUlyIThXzCDuQ8RXntFTNhBAXHx-jeqdHC12Naifw_ipukQpb2HnCyDmygAL").
У Вас куки в системе так и называются "cookie"?
Отправлено автор: TatyanaV 01 июля 2019 - 07:54 в Selenium - Functional Testing
Попробуйте между "cursorOnDestroyButton.moveToElement(destroyList.get(1))" и ".click();" добавить ожидание кликабельности.
Т.е. "переместить курсор", подождать пока кнопка станет кликабельной, кликнуть.
Отправлено автор: TatyanaV 26 июня 2019 - 05:39 в Автоматизированное тестирование
Я Selenide плохо знаю, конечно, но я не вижу в этом коде никаких намеков на инициализацию браузера. Может я просто не понимаю чего-то?
Где у Вас браузер инициализируется?
Отправлено автор: TatyanaV 25 июня 2019 - 13:16 в Автоматизированное тестирование
Сложно сказать без кода, особенно - того места, где Вы браузер инициализируете.
Проблема не в xml - а в самом коде.
Вы пытаетесь запустить свои тесты в три потока, но браузер, судя по ошибке, объявляете так, что тесты его только в одном потоке видят.
Отправлено автор: TatyanaV 19 июня 2019 - 06:56 в Selenium - Functional Testing
Есть вероятность, что Ваш скрипт просто пытается кликнуть по этому пункту меню ещё до того как этот элемент появится.
Попробуйте вместо простого поиска элемента сделать ожидание кликабельности этого элемента, а уже потом - клик.
Отправлено автор: TatyanaV 10 июня 2019 - 11:30 в Selenium - Functional Testing
Какая переменная, какой ЯП, куда не передаётся, что вообще вы пытаетесь сделать...
У нас тут напряг с телепатами - лето, отпуска...
Отправлено автор: TatyanaV 10 июня 2019 - 09:06 в Автоматизированное тестирование
Вы не знаете, что Вы делаете в тестируемой системе, чтобы залогиниться?
Обычно - ввод логина, ввод пароля, клик по кнопке для авторизации.
Отправлено автор: TatyanaV 05 июня 2019 - 13:45 в Selenium - Functional Testing
Ожидание отрабатывает, т.е. драйвер видит, что элемент появился
until(
ec.presence_of_element_located(locator))
Одно из самых бесполезных и бессмысленных ожиданий, на мой взгляд.
Нужный элемент может присутствовать в DOM даже, если Вы его не видите.
Также, как и наоборот - может быть не кликабельным, даже если Вы его видите и Вам кажется, что все ок.
Если нужно кликнуть - лучше ждать кликабельности (element_to_be_clickable).
Отправлено автор: TatyanaV 30 апреля 2019 - 12:06 в Selenium - Functional Testing
Элементов может быть разное количество - может 1, а может и 10.
.//*[@id='ProductTable']/.//tr[3]/.//input.//*[@id='ProductTable']/.//tr[3]/td[2] ///возвращает 803,52
При изменении кол-ва строк - такие локаторы сломаются.
Я бы поискала элемент с номером клиента (его не видно на скрине) и уже от него бы искала дальше.
"ProductTable" насколько я понимаю - вся таблица для всех клиентов сразу?
Отправлено автор: TatyanaV 26 апреля 2019 - 09:09 в Selenium - Functional Testing
Из справки по локаторам:
Element <E1> immediately following sibling <E2>: E2 + E1
Т.е. скорее всего: #cal td.today+td (если именно на том же уровне и не задизейбленный)
Отправлено автор: TatyanaV 25 апреля 2019 - 09:36 в Selenium - Functional Testing
Может быть смотреть не с точки зрения "выбранная ранее дата + 1 день", а с точки зрения "элемент с датой следующий сразу за элементом с текущей датой"?
Отправлено автор: TatyanaV 23 апреля 2019 - 08:08 в Начинающему тестировщику
Ну, создавайте, раз нужно. В чем проблема?
Или нужно, чтоб Вам тут готовое решение сразу выдали, а Вам только результат переотправить?
Если помощь нужна - покажите, что уже успели сделать, на чем "споткнулись", какие вопросы возникли и т.д.
Отправлено автор: TatyanaV 18 апреля 2019 - 09:21 в Selenium - Functional Testing
Возможно, если бы было понятнее в чем именно проблема, ответов было бы больше.
В начале Вы одним способом скобки указали, ниже в "равенстве" уже другим.
Фраза "в тегах "a" ищутся атрибуты data-analytics-placement" - неправильная сама по себе, т.к. локатор предполагает не поиск аттрибутов в тэгах, а поиск элементов (тэгов) с указанными значениями аттрибутов. Это не одно и тоже.
При этом, так и не понятно, в чем проблема - смотрите, как считается, и указываете соответствующий номер, хоть с 0 там отсчет, хоть с 1, хоть со скольки угодно.
В результате, лично у меня после первого сообщения получилась какая-то непонятная каша в голове.
Ваше "//a[@data-analytics-placement][3] = xpath=(//a[@data-analytics-placement][3])" - ещё больше сбило с толку, т.к. стало не ясно, что же не так то тогда, "равенство" на первый взгляд выглядит адекватным.
Про "прямо подряд" - добавило к непонятности. Бывает "непрямо подряд"?
Не понятно, что значит "4 по порядку атрибут с тегом". Это так не работает. У аттрибутов нет тэгов.
Я нашла ответ на свой вопрос, спасибо за АКТИВНОЕ участие в обсуждении.
Пожалуйста.
Отправлено автор: TatyanaV 16 апреля 2019 - 06:45 в Selenium - Functional Testing
А Вас слово "not" не смущает? :)
[id*='day']:not([class='disabled']) = элемент, в айдишнике которого присутствует "day", и у которого НЕТ класса "disabled".
Соответственно, варианты, которые Вы пробовали:
css=#day:not([class*="disabled"]):not([class*="today"]) = элемент, айдишник которого = "day" (у Вас вроде бы не было таких элементов), и у которого НЕТ класса "disabled" и НЕТ класса "today".
css=[id*="day"]:not([class*="disabled"]):not([class*="today"]) = элемент, в айдишнике которого присутствует "day", и у которого НЕТ класса "disabled" и НЕТ класса "today".
#cal td.today = где-то ниже по DOM'у относительно элемента с id = "cal", найти элемент td, у которого ЕСТЬ класс "today".
Ничего удивительного, что с этими локаторами по-разному отрабатывает всё :).
Теоретически, [id*="day"]:not([class*="disabled"]):not([class*="today"]) должно было отработать и кликнуть по "вчера" (если по скрину с кодом смотреть). Возможно, пытается кликнуть до того, как календарь "откроется".
verify element present смотрит лишь на наличие элемента в DOM'e. Видно его или нет, можно ли по нему кликнуть и т.д. - не проверяется.
Попробуйте дожидаться не наличия элемента (verify element present), а его кликабельности (element clickable - не знаю, как оно в IDE пишется).
п.с.: [id*="day"].today:not([class*="disabled"]) = элемент, айдишник которого содержит "day", и у которого ЕСТЬ класс "today" и НЕТ класса "disabled".
Отправлено автор: TatyanaV 11 апреля 2019 - 13:10 в Selenium - Functional Testing
css: [id*='day']:not([class='disabled'])
п.с.: *= - означает "содержит".
Отправлено автор: TatyanaV 09 апреля 2019 - 06:06 в Selenium - Functional Testing
Теоретически, "element present" ждёт появления элементов в DOM'е, а не у Вас на экране. Возможно, блок для результатов в DOM'е присутствует изначально, а после поиска - выводится.
На это намекает "display: none;" в searchResultContainerEmpty - возможно у mCSB_container до поиска тоже стояло "display: none;". Но т.к. сам элемент есть, "wait for element present" его успешно находит.
Если Вы хотите проверять, что элемент не просто есть, но и выведен на экран - есть два варианта:
1. Ждать не "wait for element present", а "wait for element clickable" (не помню уже, как это правильно в Selenium IDE пишется).
2. Если я права и он просто скрыт через style*='display: none;', можно попробовать искать через немного другой локатор. Т.е. ждать не "#searchResult > div.mCSB_container", а "#searchResult > div.mCSB_container:not([style*='display: none;'])" или "#searchResult:not([style*='display: none;']) > div.mCSB_container", в зависимости от того, на какой элемент вешается style*='display: none;' до поиска. Попробуйте посмотреть эту часть кода страницы до "поиска".
Отправлено автор: TatyanaV 09 апреля 2019 - 05:57 в Автоматизированное тестирование
Мне показалось, что автору нужно проверить отработку СВОЕГО функционала после клика по маркеру на карте.
С чего Вы все взяли, что он сами карты тестировать собрался?
Отправлено автор: TatyanaV 05 апреля 2019 - 12:32 в Selenium - Functional Testing
Одновременное использование явных и неявных ожиданий в принципе не рекомендуется.
наоборот, рекомендуется в случае разных "сложных" элементов, когда элементы кастомные или с фреймворков типа реакта, или когда лэйзи лоадинг применяется
https://www.selenium...er_advanced.jsp
WARNING: Do not mix implicit and explicit waits. Doing so can cause unpredictable wait times. For example setting an implicit wait of 10 seconds and an explicit wait of 15 seconds, could cause a timeout to occur after 20 seconds.
Отправлено автор: TatyanaV 05 апреля 2019 - 10:10 в Selenium - Functional Testing
Одновременное использование явных и неявных ожиданий в принципе не рекомендуется.
Отправлено автор: TatyanaV 04 апреля 2019 - 10:33 в Selenium - Functional Testing
Что-то вроде [data-ident='city'][data-title='Москва'].current
Или: [data-ident='city'][data-title='Москва']>span.tower
(css)
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru