К тому уровню соискателей, что вы хотите, можно бы и на "вы" обратиться.
(мне не актуально я мимокрокодил).
106 публикаций создано MissLeman (учитываются публикации только с 29 июня 2023)
Отправлено автор:
MissLeman
16 ноября 2018 - 14:58
в
Работа/Москва
К тому уровню соискателей, что вы хотите, можно бы и на "вы" обратиться.
(мне не актуально я мимокрокодил).
Отправлено автор:
MissLeman
03 октября 2018 - 16:31
в
Selenium - Functional Testing
Привет,
у меня есть фрагмент функции, который перекладывает элементы из двух массивов в два других массива на основе того, присутствуют ли эти элементы (controlsOnAC) в данный момент на странице. Ниже потом с массивом именно отсутствующих элементов дальнейшие действия производятся (если надо, я могу объяснить, почему так, но это долго и запутанно).
//действия по получению массивов allСontrolsToEnable и allControlsToCheck //до этого места все работает правильно - массивы содержат нужные элементы let elementsToEnable = []; let elementsToWait = []; for (let counter = 0; counter < allControlsToCheck.length; counter++){ controlsOnAC[counter].isPresent().then(function (result) { if (!result) { elementsToEnable.push(allСontrolsToEnable[counter]); elementsToWait.push(allControlsToCheck[counter]); console.log("element in elementsToEnable " + counter + " " + elementsToEnable[counter].locator().toString()); console.log("element in elementsToWait " + counter + " " + elementsToWait[counter].locator().toString()); } }); } //some actions console.log("HERE SHOULD BE FULL ARRAY LENGTH = " + elementsToEnable.length); console.log("HERE SHOULD BE FULL ARRAY LENGTH = " + elementsToWait.length)
После этой функции там происходят примерно такие действия: нажать на UI кнопочку, в открывшейся панельке прокликать элементы из массива elementsToEnable, дождавшись появления на UI элементов из elementsToWait, закрыть панельку.
И вот в эти дальнейшие действия массивы elementsToEnable и elementsToWait передаются пустыми, а сообщеньки про длину (которые капслоком) в консоли отображаются перед теми, что внутри цикла (но они потом выводят верное содержимое новых массивов), т.е. получается как-то так, что сперва проделываются все остальные действия, а уж потом программа идет в этот цикл (или в этот промис).
Подскажите, пожалуйста, как написать правильно, у меня видимо какой-то пробел насчет промисов здесь :(
Отправлено автор:
MissLeman
04 октября 2018 - 08:43
в
Selenium - Functional Testing
не дает отредактировать тему я упростила немного код, чтобы он лучше читался вне контекста, в условии промиса опечатка, должно быть
allControlsToCheck[counter].isPresent().then(function (result) {
Отправлено автор:
MissLeman
10 октября 2018 - 12:44
в
Selenium - Functional Testing
Я бы прошла дебаггером прямо по шагам.
1. Так и задумано, что из изначального массива элементы при !result кладутся сразу в оба списка (и тот, что содержит элементы, которые уже есть, и в тот, где элементы, которые надо подождать)?
2. У Вас изначально два массива, перебор идет по длине allControlsToCheck, условие также по allControlsToCheck, а элементы добавляете в т.ч. из allСontrolsToEnable. Почему если allControlsToCheck[x] присутствует, то запомнить надо не только этот элемент, но и allСontrolsToEnable[x], хотя это скорее всего совершенно разные элементы? Какая тут связь?
Спасибо за ответ!
Я пока что решила проблему иначе (перестроила алгоритм так, чтобы обойтись без IsPrersent(), не слишком красиво, но в принципе работает).
Дальнейший дебаггинг показал, что не дожидается результатов выполнения промиса, а сразу переходит к следующим действиям. В этом месте я решила, что похоже не очень я понимаю в асинхронности, надо эту тему изучить как следует, а пока сделаю как есть.
По поводу моей функции - это для включения в гриде отсутствующих колонок (кастомизация, ну вот в джире на выводе результатов запроса такое есть, если мне память не изменяет). Т.е. открой панель настройки, прощелкай элементы, которые надо включить (в массиве ElementsToEnable), и дождись, чтобы они появились на гриде (ElementsToWait), после этого переходи к следующим действиям в тесте.
Элементы из пар массивов четко связаны друг с другом, они формируются в предыдущих действиях функции и подперты проверками. Перед переходом к циклу стоит проверка, чтобы длины массивов были равны. А это только ее фрагмент, не стала просто тему загромождать.
Отправлено автор:
MissLeman
25 апреля 2019 - 13:31
в
Selenium - Functional Testing
Здравствуйте. Автотесты UI на протракторе.
Кейс: наше приложение генерирует формочку (iframe), код пользователи могут скопировать и вставить на свой сайт.
Хочу автотест, который получал бы от приложения html этой формочки, вставлял на какую-то базовую страницу, заходил на нее и проверял, что форма работает.
Вопрос: вот получила я от приложения свой iframe, смастерила строку с какой-то базовой страничкой, типа такой:
<html> <head> <title>Embedded Form</title> </head> <body> <iframe src="..." width="600" height="600"></iframe> </body> </html>
Как дальше заставить Трактор открыть этот html в браузере и проделать какие-то действия с формой, которая окажется на получившейся странице (отправить данные и т.п.)?
Отправлено автор:
MissLeman
26 апреля 2019 - 10:34
в
Selenium - Functional Testing
Сохранить во временную папку и открыть как URI "file:///..."?
Богомерзкий трактор так не умеет :( у него там прошито, что открывается только урл как data, можно поменять на файл, но только для всех спек сразу, в onPrepare, а мне ведь это надо сделать вообще в середине одного теста.
а что говорят программисты? может это должно покрываться компонентным юнит-тестом?
Я хочу сделать это трактором через UI.
Отправлено автор:
MissLeman
03 мая 2019 - 19:29
в
Selenium - Functional Testing
Вау, спасибо вам огромное. У меня тоже взлетело.
Отправлено автор:
MissLeman
29 апреля 2019 - 09:30
в
Selenium - Functional Testing
Я хочу сделать это трактором через UI.
есть такое понятие как пирамида тестов, и для фич надо создавать тесты на нужном уровне, обычно максимально низком.
если низкоуровневые кейсы покрывать е2е тестами - эти тесты будут монстрами
О Боже, ну вот хочется мне монстра, хотя бы даже just for my education. Если каждый вопрос на форуме будет сопровождаться простыней почему мы делаем вот так внешне не логично, во что превратится форум? (уже)
Отправлено автор:
MissLeman
26 октября 2018 - 11:10
в
Инструменты и технологии
Отправлено автор:
MissLeman
03 августа 2018 - 10:27
в
Selenium - Functional Testing
А в чем проблема написать отдельный локатор для синей полоски?
Потому что вроде кликнуть на верхнюю часть элемента можно. Но что-то мне подсказывает, это будет сложнее
Как я понимаю вот сюда вам надо https://seleniumhq.g...ionBuilder.html
Отправлено автор:
MissLeman
08 сентября 2018 - 15:55
в
Selenium - Functional Testing
кстате протрактор например свои локаторы имеет: по модели и биндингу. правда, они помогут лишь в том случае, если протрактор юзается строго по назначению ))
а у xpath вот да, яркое преимущество, что можно искать внутри чего-то (".//div...") Если этого не надо, то css быстрее, вроде. Так считается )
Отправлено автор:
MissLeman
07 сентября 2018 - 14:22
в
Selenium - Functional Testing
Это надо как-то разработчиков фронта трестируемой системы заставить id элементам лепить, с которыми может взаимодействовать пользователь.
Просто если этих id нет, тогда и приходят на помощь xpath и css
Just for my education, а что, можно, к примеру, в данном форуме добавить заранее известные айдишники элементам, которые содержат ссылку на профиль комментатора в теме? (скажем, мой ник в этом сообщении)?
Отправлено автор:
MissLeman
12 июля 2018 - 17:43
в
Selenium - Functional Testing
а что именно не получается?
Отправлено автор:
MissLeman
13 июля 2018 - 13:19
в
Selenium - Functional Testing
Не получается локатор написать, что ли? Потому что несколько элементов с одинаковыми атрибутами?
вот так вроде должно работать, допустим, в xpath можно складывать любой атрибут, не обязательно класс.
//a[@data-price-tab="retail"]
в помощь
Отправлено автор:
MissLeman
17 августа 2018 - 10:00
в
Selenium - Functional Testing
ну логично написать какую-то ждалку, ожидающую конца обновления. поищите на UI что-то, означающее окончание обновления. Может, у вас там что-то подкрашивается, или скрывается лоадинг, или на худой конец можно написать по логике "жди, покуда в таблице не станет 4 строки", если по вашим фильтрам должно получиться именно 4.
Отправлено автор:
MissLeman
29 января 2019 - 12:38
в
Selenium - Functional Testing
Текст, насколько я понимаю, это не то что нельзя, просто зачем изобретать велосипед, если у вас есть запорожец. И зачем ездить на запорожце, если есть феррари :)
С текстом еще вот какая проблема бывает, у меня не далее как на прошлой неделе четыре теста полегло, потому что разработчик, никому не сказамши, исправил по указанию дизайнера title (этот атрибут тоже, кстати, надо юзать с осторожностью, т.к. по сути он тот же текст) с More Actions на More actions. Подумаешь, буковка, что там тестировать.
Отправлено автор:
MissLeman
24 января 2019 - 14:10
в
Selenium - Functional Testing
ну, я не спец в этом (может Татьяна поправит потом), но вообще локаторы надо писать примерно так:
1) есть ID - ищем по ID
2) нету ID, но можно написать однозначный локатор по css - пишем по css
3) если нет, остается xpath, пишем, опираясь на атрибуты элемента (класс, ссылка... НЕ текст, не title и т.п.)
4) и только в самом крайнем случае юзаем текстовое содержимое, но само по себе ничего страшного в этом нет, иногда без этого никак (например, открыть дропдаун со странами и выбрать определенную страну - форматирование у всех элементов, скорее всего, будет одинаковым).
если вам поставили цель, раскрутите этих, которые поставили, на тренинг Баранцева Java для тестировщиков, вам намного легче будет, думаю, или еще какой-нибудь курс по нему найдите
Отправлено автор:
MissLeman
22 января 2019 - 09:19
в
Selenium - Functional Testing
Если есть Id, зачем xpath? :)
Отправлено автор:
MissLeman
21 января 2019 - 08:47
в
Selenium - Functional Testing
https://www.guru99.c...h-selenium.html вот это почитайте, имхо лучший материал по XPATH (но не забываем, что кроме икспасов еще есть css локаторы и, возможно, какие-то специфичные для инструмента)
Отправлено автор:
MissLeman
05 ноября 2018 - 10:06
в
Автоматизированное тестирование
https://stackoverflo...me-installation ?
А зачем это вам, если не секрет?
Отправлено автор:
MissLeman
21 ноября 2018 - 15:06
в
Тест-дизайн и ручное тестирование
XHR - это запрос, которым обменивается веб-страница со своим сервером, чтобы получить нужные для отображения данные. Например, чтобы загрузить эту страницу, веб посылает на форум запрос, который возвращает тексты всех сообщений, юзернеймы пользователей и т.п. (это грубое объяснение естественно).
Но вообще вы же взяли картинку эту с гугловского туториала, где собственно и написано, что это такое и про каждый запрос тоже.
Отправлено автор:
MissLeman
20 ноября 2018 - 10:30
в
Автоматизированное тестирование
Я прошла курс с# для тестировщиков у Баранцева здесь, а потом жизнь в лице начальника заставила писать тесты на js, переучилась без проблем (правда, js учила не совсем с нуля, раньше приходилось сталкиваться, но на самом базовом уровне).
З.Ы. Вернее, проблемы были, но связанные как раз с тем, что у нас проект на C# и по многим причинам надо было тесты тоже писать на нем, не знаю какого черта они захотели протрактор.
Отправлено автор:
MissLeman
30 декабря 2018 - 09:51
в
Свободное общение
Что бы вы, как тестировщик, попросили у Деда Мороза?
(вот я например)
Дорогой Дедушка Мороз,
пожалуйста, сделай так, чтобы я больше никогда не видела экспектов, запрятанных в методы страниц; объявления элементов через локаторы каждый раз заново в каждом тесте (или каждом методе); удаленных втихушку багов ("Мы решили, что не будем это фиксить" - "А почему?" - "Ммм да фиг знает, сто лет прошло, уже и не помню").
А еще, если можно, чтобы браузер Safari взял да исчез бесследно.
Отправлено автор:
MissLeman
31 декабря 2018 - 06:16
в
Свободное общение
Вообще с ним все отлично, просто мешает лично мне :))
Отправлено автор:
MissLeman
06 августа 2018 - 14:07
в
Начинающему тестировщику
Поцыэнт Автор получил тестовое задание: составить и протестировать кейсы к приложению на Андроид типа "блокнот", а полученные баги разделить на группы Critical, Major, Minor, и интересуется знать: должно быть 30 кейсов или 30 багов.
Ответ: вряд ли будет получен без ссылки на приложение. Да и то вряд ли будет получен, т.к. кто ж это знает.
Community Forum Software by IP.Board Русификация от IBResource
Лицензия зарегистрирована на: Software-Testing.Ru