Проверить конкретный атрибут / проверить устаревание элемента в кукольнике?

Привет, я немного новичок в этом, но я нахожусь в процессе перехода от 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)

Я пробовал что-то подобное в Кукловоде -

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

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


person HaagenDaaS    schedule 24.05.2018    source источник
comment
См. Как сделать Я делаю X? Ожидается, что пользователь, задающий вопрос, не только проведет исследование, чтобы ответить на свой вопрос, но и поделится этим исследованием, попытками кода и результатами. Это демонстрирует, что вы нашли время, чтобы попытаться помочь себе, избавляет нас от повторения очевидных ответов и, прежде всего, помогает вам получить более конкретный и актуальный ответ! См. Также: Как задать вопрос   -  person JeffC    schedule 24.05.2018


Ответы (1)


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

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

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

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

await page.waitFor(
    () => !document.querySelector('.someModalElement')
  );
person HaagenDaaS    schedule 24.05.2018