Size: a a a

2019 December 30

PP

Pavel Potapkin in JS for testing
Oleksandr Khotemskyi
а что там сложного? Нашел все элементы, взял текст, выкинул те элементы в которых текст не совпадает - вернул оставшееся
я имею в виду что свой contains() написать наверное несложно
источник

SC

Sergey Chepets in JS for testing
Oleksandr Khotemskyi
+ нет проверки видимости, есть вероятность что реальный юзер не сможет кликнуть на элемент, а пупетир да
спасибо!
источник

OK

Oleksandr Khotemskyi in JS for testing
Pavel Potapkin
я имею в виду что свой contains() написать наверное несложно
он и в wdio кстати есть, и в сайпресе
источник

PP

Pavel Potapkin in JS for testing
то немногое чем css хуже xpath
источник

G

Gnam in JS for testing
Oleksandr Khotemskyi
он и в wdio кстати есть, и в сайпресе
источник

G

Gnam in JS for testing
Но я так понимаю на выходе он через xpath contains в итоге фигачит)
источник

OK

Oleksandr Khotemskyi in JS for testing
Pavel Potapkin
то немногое чем css хуже xpath
ну это не сложно реализуется, можно даже одной командой сделать - через исполнение js на странице, чтобы не делать мильйон вызовов find/getText
источник

G

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

OK

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

OI

Oleksii Ihnatiuk in JS for testing
Я скину позже как реализовал в пупетире
источник

OI

Oleksii Ihnatiuk in JS for testing
Проверку на видимость
источник

OK

Oleksandr Khotemskyi in JS for testing
Oleksii Ihnatiuk
Проверку на видимость
интересно
источник

SC

Sergey Chepets in JS for testing
Oleksii Ihnatiuk
Проверку на видимость
Я так запилил, но еще не проверял.
  async isVisible(): Promise<boolean> {
   try {
     await this.waitForVisible();
   }
   catch (e) {
     if (e.name !== "TimeoutError") {
       throw e;
     }
     return false;
   }
   return true;
 }

 async waitForVisible(): Promise<void> {
   return page.waitForXPath(
     this.selector,
     {
       timeout: 4000,
       visible: true,
     },
   );
 }
источник

PP

Pavel Potapkin in JS for testing
wait for visible просто проверяет на display none и visibility hidden
источник

PP

Pavel Potapkin in JS for testing
этого недостаточно
источник

SC

Sergey Chepets in JS for testing
Oleksandr Khotemskyi
интересно
Тогда и мне тоже интересно
источник

SC

Sergey Chepets in JS for testing
Пользу от нашего канала тяжело переоценить! Всем огромное спасибо за участие!
источник

VB

Vitalii Budniak in JS for testing
Pavel Potapkin
wait for visible просто проверяет на display none и visibility hidden
export const elementIsPresentByXpath = async  (selectorXpath, timeForWait) => {
 let millisecondsForWait = timeForWait;
 if (typeof millisecondsForWait === 'undefined') {
   millisecondsForWait = 5000;
 }
 try {
   await page.waitForXPath(selectorXpath, { timeout: millisecondsForWait });
   return true;
 } catch (e) {
   console.warn(`Element by Xpath not found: ${selectorXpath}`);
   return false;
 }
}
источник

OK

Oleksandr Khotemskyi in JS for testing
Vitalii Budniak
export const elementIsPresentByXpath = async  (selectorXpath, timeForWait) => {
 let millisecondsForWait = timeForWait;
 if (typeof millisecondsForWait === 'undefined') {
   millisecondsForWait = 5000;
 }
 try {
   await page.waitForXPath(selectorXpath, { timeout: millisecondsForWait });
   return true;
 } catch (e) {
   console.warn(`Element by Xpath not found: ${selectorXpath}`);
   return false;
 }
}
я бы без warn и if/ писал
источник

OK

Oleksandr Khotemskyi in JS for testing
Vitalii Budniak
export const elementIsPresentByXpath = async  (selectorXpath, timeForWait) => {
 let millisecondsForWait = timeForWait;
 if (typeof millisecondsForWait === 'undefined') {
   millisecondsForWait = 5000;
 }
 try {
   await page.waitForXPath(selectorXpath, { timeout: millisecondsForWait });
   return true;
 } catch (e) {
   console.warn(`Element by Xpath not found: ${selectorXpath}`);
   return false;
 }
}
и вообще можно просто -

const boolean = await page.waitForXPath(selectorXpath, { timeout: millisecondsForWait }).then(()=> true, err => false);
источник