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

Публикации MissLeman

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



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

Отправлено автор: MissLeman 26 апреля 2019 - 10:34 в Selenium - Functional Testing

Сохранить во временную папку и открыть как URI "file:///..."?

Богомерзкий трактор так не умеет :( у него там прошито, что открывается только урл как data, можно поменять на файл, но только для всех спек сразу, в onPrepare, а мне ведь это надо сделать вообще в середине одного теста.

 

 

а что говорят программисты? может это должно покрываться компонентным юнит-тестом?

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




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

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




#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 в Работа/Москва

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

 

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