Проверить на наличие определенного атрибута / проверить на предмет устаревания элемента в кукловоде? - PullRequest
0 голосов
/ 24 мая 2018

Привет, я немного новичок в этом, но я нахожусь в процессе перехода от Selenium с Node.js к Puppeteer для тестирования пользовательского интерфейса, я хотел бы знать, как лучше всего проверить в Puppeteer, еслиэлемент устарел (удален из DOM), а также лучший способ проверить наличие изменений в атрибуте, специфичном для элемента (например, если непрозрачность элемента изменилась с 0 на 1 или элемент стал отключенным)

Вот несколько примеров того, как я использовал их для достижения в Selenium:

Проверка на изменение атрибута -

function waitForOpacity(driver, obj, time) {
  driver.wait(() => {
    return obj.getCssValue('opacity').then(opacity => opacity === '1')
  }, time)
} 

waitForOpacity(driver, submitButton, 30000)
submitButton.click()

Проверка на устойчивость элемента -

function stalenessOf(driver, until, obj, time) {
 return driver.wait(until.stalenessOf(obj), time)
}

stalenessOf(driver, until, someModalElement, 60000)

Я попробовал что-то подобное в Puppeteer -

await page.waitForSelector('.myButton');
  await page.evaluate(() => {
    document.querySelector('.myButton').style.opacity === '1';
  }); 
  await page.click('.myButton');

Однако я не думаю, что это правильный синтаксис ... любая помощь приветствуется, спасибо большое!

1 Ответ

0 голосов
/ 24 мая 2018

Думаю, я выяснил это после некоторого исследования, но не уверен, что это самое чистое решение -

Проверка на изменение непрозрачности -

await page.waitForSelector('.myBtn');
  await page.waitFor(
    () => document.querySelector('.myBtn').style.opacity === '1'
  );
  await page.click('.myBtn');

Проверка на целостность элемента -

await page.waitFor(
    () => !document.querySelector('.someModalElement')
  );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...