Size: a a a

JavaScript testing

2021 September 06

A

Andy in JavaScript testing
ну в плане, интегрейшн тесты/апи тесты, под что заточен язык более
источник

AV

Alex Vershinin in JavaScript testing
язык был больше заточен под web, а сейчас он универсальный) тесты можно писать на чём угодно, если библиотеки есть, а они есть)
источник

OI

Oleksii Ihnatiuk in JavaScript testing
на нем сейчас пишут все, заточен под фронт поболее (я не эксперт)
источник

A

Andy in JavaScript testing
ну да, писать можно на всех языках, просто появилась мысль, что джс побеждает в ЮАЙ автоматизации, хотел бы поизучать вопрос, как праильно юзать этот язык для автоматизации, какие плюсы и минусы
источник

OI

Oleksii Ihnatiuk in JavaScript testing
если тебе кажется, то лучше поищи стату по ваканциям в своем регионе 🙂
java на первом месте если я не ошибаюсь
источник

AV

Alex Vershinin in JavaScript testing
Побеждает в UI автоматизации - противоречиво, если судить по новым инструментам, то да, наверно, если судить по количеству вакансий и кода, то вряд ли.

Как правильно юзать - брать документацию языка и тулов и смотреть примеры, mocha/jest - как правильно организовать сьюты тестов сами тесты и пред/постусловия, Page Object Pattern или Custom commands от Cypress, чтобы организовать элементы и действия на странице, общие паттерны кода, чтобы писать чище/читаемо. Для работы с браузером и страницами смотреть уже доку playwright/cypress/wdio/... там всё слегка по-разному, хотя и смысл почти один.

Плюсы, минусы - тут можно по чатику поискать, где-то была табличка. Да и просто в интернете.
источник

НЧ

Наталья Чуфырина... in JavaScript testing
Привет! Обратила внимание, что у WDIO в моем проекте не отрабатывает метод clearValue - данные не очищаются. Применяю для элемента типа
//input[@type="email"]

Замечалась ли такая история у wdio или искать проблему у себя?)
источник

O

Olga in JavaScript testing
я тут с див имела прикоючения :(
источник

O

Olga in JavaScript testing
пришлось сделать вот так
источник

O

Olga in JavaScript testing
сорян, баклажанчик подгорел, отвлеклась. вот так. в кастом-команду это дело оформила

        await this.keys(['Control','KeyA'])
       await this.keys('Control')
       await this.keys('Delete')
источник

OK

Oleksandr Khotemskyi in JavaScript testing
тут очень зависит от инпута, у меня тоже бывало. Всякие кастомные могут не очищатся
источник

НЧ

Наталья Чуфырина... in JavaScript testing
спасибо за ответ! Об альтернативных способах я уже думала, но не хочется изобретать велосипед, когда есть нужный метод у фреймворка )
источник

DD

Danya Daniil in JavaScript testing
покажи ДОМ, мб в нем секрет сидит
источник

OK

Oleksandr Khotemskyi in JavaScript testing
можешь попробовать очистить через execute, или как Оля показала
источник

G

Gnam in JavaScript testing
```export const clearInputUsingKeys = (el: WebdriverIO.Element) => {
el.click();
const backSpaceArray =
ArrayArray(el.getValue().length).fill('Back space');
browserbrowser.keys(backSpaceArray);
const value = el.getValue();
if (value.length > 0) {
 const deleteArray =
ArrayArray(value.length).fill('Delete');
 
browserbrowser.keys(deleteArray);
}
};
```
источник

G

Gnam in JavaScript testing
я таким гавно кодом очищался.
Тоже инпут для емэйлов был. Черекз shadow dom реализованный

Ctrl+A не срабатывал, поэтому через backspace и потом добить через delete то что не удалилось
источник

P

Paul G in JavaScript testing
можно просто execute скриптом все сделать намного проще
источник

G

Gnam in JavaScript testing
сейчас наверное да, так и сделал бы. Но раньше всякие executeScript считал не кошерными 🤣
пока не столкнулся с парочкой проблем, которые без этого не обойти
источник

НЧ

Наталья Чуфырина... in JavaScript testing
может быть, но нельзя)

всем спасибо, ситуацию поняла
источник

A

Andrey in JavaScript testing
Может кто подскажет что не так с куками в запросе
RequestError: Cookie has domain set to a public suffix

либа GOT
код
const cookieJar = new CookieJar();
const setCookie = promisify(cookieJar.setCookie.bind(cookieJar));
await setCookie(receivedCookie,'http://localhost/id/',);
formData.append('csrfmiddlewaretoken', this.getTokenFromHtml(response.body));
formData.append('username', 'rrrrh@gmail.com');
formData.append('password', '12345678');
response = await got(config.use.baseURL + '/id/', {
timeout: 10000,
method: 'POST',
body: formData,
cookieJar,
});
источник