Size: a a a

2019 December 30

OI

Oleksii Ihnatiuk in JS for testing
Но то такое, без разницы
источник

VB

Vitalii Budniak in JS for testing
надо будет попробвать будет ли рабоать если заменить на await page.waitForXPath(selector)
источник

VB

Vitalii Budniak in JS for testing
Oleksii Ihnatiuk
waitFor самописная штука, вы можете использовать любую ф-цию либы, которая ждет пока предиката будет true (например мы хотим ждать 10 секунд и чекать каждые пол секунды наше условие).
Вот так я получаю элемент в puppeteer
а можно пример waitFor
источник

OI

Oleksii Ihnatiuk in JS for testing
Найди либу oi-verify
источник

OI

Oleksii Ihnatiuk in JS for testing
Или репу у меня crispusdh
источник

OI

Oleksii Ihnatiuk in JS for testing
Ее основу я взял с Селениум жс
источник

VB

Vitalii Budniak in JS for testing
Спс посмотрю
источник

PP

Pavel Potapkin in JS for testing
xpath в jquery работает кажется при наличии соответствующего плагина, то есть это особенность jquery а не фреймворка где он используется
источник

SC

Sergey Chepets in JS for testing
Bola
Но согласитесь, это решение лежит на поверхности
Да, условное ожидание это основа основ, но все про это говорят как про ожидание элемента или свойство элемента.  Но тут другого рода ожидание. Допустим, нам надо проверить объект из БД на соответствие какому-то ожидаемому результату. Т.е. пойди в бд, вытянуть обьект, распарсить его и сравнить с чем то, и это все надо сделать сразу после того как мы накликали нужное на UI. Но ui сохраняет результат в БД не мгновенно. Т.е. мы должны выполнять всю последовательность в течении какого-то времени до достижения ожидаемого результата или тайм-аута. Вот про такое очень не хватало статейки или доклада, когда был джуном. Единственное, что можно было найти - это пейж обжекты логин страницы)
источник

B

Bola in JS for testing
Ну не знаю. Как начал писать первые тесты, в первую очередь искал способ - как дождаться событий. И оказалось почти в каком тестовом фреймворки есть своя реализация вейтов. Все придумано).
источник

SC

Sergey Chepets in JS for testing
Вейтов на результат функцию не встречал. Об каком фреймворке речь?
источник

SC

Sergey Chepets in JS for testing
В wdio, selenide Java, puppeteer такого нет
источник

B

Bola in JS for testing
Sergey Chepets
Вейтов на результат функцию не встречал. Об каком фреймворке речь?
На результат функции?
В wdio есть универсальный waitUntil - в тело пишешь нужную функцию и ждешь
источник

OI

Oleksii Ihnatiuk in JS for testing
В пупетире тоже самое
источник

OI

Oleksii Ihnatiuk in JS for testing
Просто это не явно
источник

Sb

Sergii bapo in JS for testing
#памажите_свершиться_рождественскому_чуду
cypress
basic auth

у меня есть сайт.дев и secure.сайт.дев оба под бейсиком

есть такая конструкция
 it('Open main page', function(){
       cy.visit("/", {
           auth:{"username": Cypress.env('basic_login'),"password":Cypress.env('basic_password')},
           onBeforeLoad: (win) => {
               win.sessionStorage.clear()
               win.localStorage.clear()
             }
       });


и есть

it('Go to secure', function(){
       cy.request({
           method: 'GET',
           url: Cypress.env('secureUrl'),
           auth: {
               user: Cypress.env('basic_login'),
               pass: Cypress.env('basic_password')
           },
           followRedirect: false
       }).
       then((resp) => {
           expect(resp.status).to.eq(301)
           expect(resp.redirectedToUrl).to.eq(Cypress.env('secureUrl') +'en')
       })
   })


в теории, я ожидаю, что при втором переходе - у меня бейсик больше появляться не будет в рамках одного describe

но на практике, происходит такая движа, что я совершаю оплату, происходит переход на платежную систему и она редиректит на секюр часть, где уже требуется снова ввести бейсик.
И у меня горит в нижней части от того, что я не могу ничего тут сделать.

secure => omise => secure (basic) => failed
может есть возможность как-то отслеживать, что я уже вернулся с сайта платежки, что-то типа
cy.url()
.then( url => {
сюда припихнуть basic auth и не страдать
}
источник

B

Bola in JS for testing
А если его нет, самому легко написать
источник

OI

Oleksii Ihnatiuk in JS for testing
Легко сложно тепло мягко :)
источник

B

Bola in JS for testing
Sergii bapo
#памажите_свершиться_рождественскому_чуду
cypress
basic auth

у меня есть сайт.дев и secure.сайт.дев оба под бейсиком

есть такая конструкция
 it('Open main page', function(){
       cy.visit("/", {
           auth:{"username": Cypress.env('basic_login'),"password":Cypress.env('basic_password')},
           onBeforeLoad: (win) => {
               win.sessionStorage.clear()
               win.localStorage.clear()
             }
       });


и есть

it('Go to secure', function(){
       cy.request({
           method: 'GET',
           url: Cypress.env('secureUrl'),
           auth: {
               user: Cypress.env('basic_login'),
               pass: Cypress.env('basic_password')
           },
           followRedirect: false
       }).
       then((resp) => {
           expect(resp.status).to.eq(301)
           expect(resp.redirectedToUrl).to.eq(Cypress.env('secureUrl') +'en')
       })
   })


в теории, я ожидаю, что при втором переходе - у меня бейсик больше появляться не будет в рамках одного describe

но на практике, происходит такая движа, что я совершаю оплату, происходит переход на платежную систему и она редиректит на секюр часть, где уже требуется снова ввести бейсик.
И у меня горит в нижней части от того, что я не могу ничего тут сделать.

secure => omise => secure (basic) => failed
может есть возможность как-то отслеживать, что я уже вернулся с сайта платежки, что-то типа
cy.url()
.then( url => {
сюда припихнуть basic auth и не страдать
}
Заранее открыть с Бейсик оба урла?
источник

B

Bola in JS for testing
Oleksii Ihnatiuk
Легко сложно тепло мягко :)
Ага.. помню тот коммент
источник