Как нажать на элемент, который должен исчезнуть на событии «touchmove»? - PullRequest
0 голосов
/ 18 февраля 2019

Я пишу тест-кейс для мобильной версии нашего веб-приложения и не могу щелкнуть всплывающее окно, предназначенное для исчезновения при событии «touchmove».Есть ли способ решить эту проблему?

Информация о платформе:
ОС: Mac OS Mojave 10.14.13
Версия TestCafe: 1.0.1
Версия Chrome: 72.0.03626
TestCafe browsers значение: chrome:emulation:device=iPhone X

Когда testcafe пытается выполнить щелчок, всплывающее окно исчезает.Я попытался сначала навести курсор на элемент, а затем щелкнуть по нему, но это не помогло.

Вот код React, который обрабатывает событие «touchmove»

  componentDidUpdate(prevProps) {
    if (!prevProps.undoRemove && this.props.undoRemove) {
      window.addEventListener('touchmove', this.props.onHideUndo)
    } else if (prevProps.undoRemove && !this.props.undoRemove) {
      window.removeEventListener('touchmove', this.props.onHideUndo)
    }
  }

  componentWillUnmount() {
    if (this.props.undoRemove) this.props.onHideUndo()
    window.removeEventListener('touchmove', this.props.onHideUndo)
  }

Кодкоторый проверяет это поведение:

test('Undo Popup - Click on "Undo" button should return item back', async t => {
  const defItemCount = await page.itemCount;
  const rItemId = await page.getItemByIndex(1).info.sku.textContent;

  await page.removeItemByIndex(1);
  await t.expect(page.itemCount).notEql(defProdCount);
  await t.click(page.undoPopup.undoButton);
  await t.expect(page.itemCount).eql(defItemCount);
})

Я ожидаю, что при выполнении действия testcafe click я получаю нажатие на эту кнопку, а при выполнении действия drag она должна исчезнуть, как и ожидалось.

1 Ответ

0 голосов
/ 18 февраля 2019

Как я понял, причиной проблемы является событие touchmove, которое заставляет всплывающее окно закрываться.Щелчок по любому элементу не должен вызывать событие touchmove, поэтому я создал отдельный тикет в репозитории TestCafe.Пожалуйста, отследите его, чтобы увидеть прогресс

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...