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

Публикации MissLeman

106 публикаций создано MissLeman (учитываются публикации только с 15 июля 2024)



#172058 Как проверить правильность генерируемого страницей html

Отправлено автор: MissLeman 03 мая 2019 - 19:29 в Selenium - Functional Testing

Вау, спасибо вам огромное. У меня тоже взлетело.




#171995 Как проверить правильность генерируемого страницей html

Отправлено автор: MissLeman 29 апреля 2019 - 09:30 в Selenium - Functional Testing

 

 

 

Я хочу сделать это трактором через UI.

есть такое понятие как пирамида тестов, и для фич надо создавать тесты на нужном уровне, обычно максимально низком. 

 

если низкоуровневые кейсы покрывать е2е тестами - эти тесты будут монстрами

 

 

О Боже, ну вот хочется мне монстра, хотя бы даже just for my education. Если каждый вопрос на форуме будет сопровождаться простыней почему мы делаем вот так внешне не логично, во что превратится форум? (уже)




#168889 [Protractor] Условие по isPresent() в цикле

Отправлено автор: MissLeman 10 октября 2018 - 12:44 в Selenium - Functional Testing

Я бы прошла дебаггером прямо по шагам.

 

1. Так и задумано, что из изначального массива элементы при !result кладутся сразу в оба списка (и тот, что содержит элементы, которые уже есть, и в тот, где элементы, которые надо подождать)?

2. У Вас изначально два массива, перебор идет по длине allControlsToCheck, условие также по allControlsToCheck, а элементы добавляете в т.ч. из allСontrolsToEnable. Почему если allControlsToCheck[x] присутствует, то запомнить надо не только этот элемент, но и allСontrolsToEnable[x], хотя это скорее всего совершенно разные элементы? Какая тут связь?

Спасибо за ответ!

 

Я пока что решила проблему иначе (перестроила алгоритм так, чтобы обойтись без IsPrersent(), не слишком красиво, но в принципе работает).

 

Дальнейший дебаггинг показал, что не дожидается результатов выполнения промиса, а сразу переходит к следующим действиям. В этом месте я решила, что похоже не очень я понимаю в асинхронности, надо эту тему изучить как следует, а пока сделаю как есть.

По поводу моей функции - это для включения в гриде отсутствующих колонок (кастомизация, ну вот в джире на выводе результатов запроса такое есть, если мне память не изменяет). Т.е. открой панель настройки, прощелкай элементы, которые надо включить (в массиве ElementsToEnable), и дождись, чтобы они появились на гриде (ElementsToWait), после этого переходи к следующим действиям в тесте.

 

Элементы из пар массивов четко связаны друг с другом, они формируются в предыдущих действиях функции и подперты проверками. Перед переходом к циклу стоит проверка, чтобы длины массивов были равны. А это только ее фрагмент, не стала просто тему загромождать.




#168776 [Protractor] Условие по isPresent() в цикле

Отправлено автор: MissLeman 04 октября 2018 - 08:43 в Selenium - Functional Testing

не дает отредактировать тему  :rtfm: я упростила немного код, чтобы он лучше читался вне контекста, в условии промиса опечатка, должно быть 

allControlsToCheck[counter].isPresent().then(function (result) {



#168771 [Protractor] Условие по isPresent() в цикле

Отправлено автор: 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 передаются пустыми, а сообщеньки про длину (которые капслоком) в консоли отображаются перед теми, что внутри цикла (но они потом выводят верное содержимое новых массивов), т.е. получается как-то так, что сперва проделываются все остальные действия, а уж потом программа идет в этот цикл (или в этот промис). 

 

Подскажите, пожалуйста, как написать правильно, у меня видимо какой-то пробел насчет промисов здесь :( 




#169521 Автоматизаторы на топовые банковские проекты

Отправлено автор: MissLeman 16 ноября 2018 - 14:58 в Работа/Москва

К тому уровню соискателей, что вы хотите, можно бы и на "вы" обратиться.

 

(мне не актуально я мимокрокодил).