Size: a a a

2020 February 06

AB

Alex Broshkov in JS for testing
mkots
Нравится
Кул! @mkots можно вопрос, доводилось ли загружать файлы в форму?А то из коробки в cypress вроде еще нет решения.
источник

m

mkots in JS for testing
Да, плагином делал
источник

m

mkots in JS for testing
Правда у меня drag-and-drop
источник

AB

Alex Broshkov in JS for testing
mkots
Да, плагином делал
Подскажи название плиз )
источник

m

mkots in JS for testing
источник

OS

Oleg Sysov in JS for testing
Alex Broshkov
Кул! @mkots можно вопрос, доводилось ли загружать файлы в форму?А то из коробки в cypress вроде еще нет решения.
в моем случае добавил команду и юзаю ее.

Cypress.Commands.add('convertFileToUpload', ({ fileType = 'video', fileName, type = ' ', fileUploadInput }) => {
   cy.get(fileUploadInput).then(subject => {
       cy.fixture(`${fileType}/${fileName}`, 'base64')
           .then(Cypress.Blob.base64StringToBlob)
           .then(blob => {
               return cy.window().then(win => {
                   const file = new win.File([ blob ], fileName, { type });
                   const dataTransfer = new win.DataTransfer();

                   dataTransfer.items.add(file);

                   const el = subject[0];

                   el.files = dataTransfer.files;
               });
           });
   });
});
источник

m

mkots in JS for testing
Oleg Sysov
в моем случае добавил команду и юзаю ее.

Cypress.Commands.add('convertFileToUpload', ({ fileType = 'video', fileName, type = ' ', fileUploadInput }) => {
   cy.get(fileUploadInput).then(subject => {
       cy.fixture(`${fileType}/${fileName}`, 'base64')
           .then(Cypress.Blob.base64StringToBlob)
           .then(blob => {
               return cy.window().then(win => {
                   const file = new win.File([ blob ], fileName, { type });
                   const dataTransfer = new win.DataTransfer();

                   dataTransfer.items.add(file);

                   const el = subject[0];

                   el.files = dataTransfer.files;
               });
           });
   });
});
Плагин который я скинул делает в точности тоже самое
источник

AB

Alex Broshkov in JS for testing
Спасибище! 🙏🏻
источник

m

mkots in JS for testing
const uploadImage = (
   selector: string,
   fileUrl: string,
   type: string | 'image/png' = '',
): Cypress.Chainable<JQuery<HTMLElement>> => {
   return cy
       .fixture(fileUrl, 'base64')
       .then(Cypress.Blob.base64StringToBlob)
       .then(blob => {
           const nameSegments = fileUrl.split('/');
           const name = nameSegments[nameSegments.length - 1];
           const file = new File([blob], name, { type });
           const event = {
               dataTransfer: {
                   files: [file],
                   types: ['Files'],
               },
           };
           return cy
               .get(selector)
               .trigger('dragenter', event)
               .trigger('drop', event);
       });
};
источник

OI

Oleksii Ihnatiuk in JS for testing
а блоб это Binary linked object?
источник

m

mkots in JS for testing
Почти)
источник

m

mkots in JS for testing
источник

OK

Oleksandr Khotemskyi in JS for testing
ух, даже блобилка в депенденсях
источник

m

mkots in JS for testing
для людей потому что)
источник

VG

Vitalii Grygoruk in JS for testing
ану SDETы
как себя ведут разные JS инструменты для тестирования браузерного в случае когда на странице много элементов с одинаковым селектором и вы делаете следующее
$(‘selector-that-matches-many-elements’).

1 - возвращает первый элемент
2 - падает потому как селектор не уникальный
3 - ваш вариант
источник

VG

Vitalii Grygoruk in JS for testing
wdio 5 - возвращает первый элемент
источник

IM

Ilya Murashka in JS for testing
Protractor берет 1
источник

OK

Oleksandr Khotemskyi in JS for testing
Vitalii Grygoruk
ану SDETы
как себя ведут разные JS инструменты для тестирования браузерного в случае когда на странице много элементов с одинаковым селектором и вы делаете следующее
$(‘selector-that-matches-many-elements’).

1 - возвращает первый элемент
2 - падает потому как селектор не уникальный
3 - ваш вариант
Протрактор пишет ворнинг, но дает первый
источник

VG

Vitalii Grygoruk in JS for testing
а что там seleniumjs, selenidejs @alex_popov_tech
источник

OK

Oleksandr Khotemskyi in JS for testing
Vitalii Grygoruk
а что там seleniumjs, selenidejs @alex_popov_tech
Селениум молча первый дает
источник