Используя nightwatch, сравните массивы элементов, чтобы увидеть, совпадают ли значения - PullRequest
0 голосов
/ 06 ноября 2019

Для каждого изображения на странице я создаю привязку вокруг него, используя js, поэтому я хочу написать тест, чтобы убедиться, что он там есть.

Использование ночных часов Я пытаюсь выполнить тест, чтобы убедиться, что каждое изображение имеет родительский якорь.

Я пытался выполнить этот тест, используя три различных метода.

  1. Тестявляется ли каждый родительский родительский объект якорем
  2. Проверьте, является ли каждый дочерний объект якорей изображением
  3. Соберите массив всех изображений и массив всех якорей для сравнения там длины

Я не мог придумать, как выполнить первые два, поэтому я пытался выполнить третий, так как это казалось наиболее логичным, однако у меня возникли проблемы с созданием двух массивов элементов для сравнения.

Я пробовал варианты приведенного ниже кода, пытаясь получить массив обоих элементов или их идентификаторов элементов, чтобы я мог их сравнить, но безуспешно

Если у кого-то есть какие-либо предложения о том, какдостичь этого я все уши. Также можно отказаться от моего третьего подхода, если первые два более вероятны.

Спасибо за любую помощь, которую вы можете предложить.

Вот то, что я пытался:

html после того, как JavaScript обернул изображения

<figure class="figure-image">
    <a role="button">
        <img src="image-source" alt="image-alt" />
    </a>
</figure>

<figure class="figure-image">
    <a role="button">
        <img src="image-source" alt="image-alt" />
    </a>
</figure>

<figure class="figure-image">
    <a role="button">
        <img src="image-source" alt="image-alt" />
    </a>
</figure>

<figure class="figure-image">
    <a role="button">
        <img src="image-source" alt="image-alt" />
    </a>
</figure>

**Image Tests**

// Both anchor.length and image.length are 0 so of course the tests pass
'Anchors will be created for each image found': browser => {
    browser.elements('css selector', '.figure-image', elem => {
      // return elem.value
      elem.value.map(figure => {
        const anchors = browser.elementIdElements(figure.ELEMENT, 'tag name', 'a', anchor => { return anchor.value })
        const images = browser.elementIdElements(figure.ELEMENT, 'tag name', 'img', image => { return image.value })
        browser.assert.equal(anchors.length, images.length, 'Anchors match the amount of images')
      })
    })
  }


// Each anchors and images are just an object of nightwatch api commands when I log them out
'Anchors will be created for each image found': browser => {
    const anchors = browser.elements('css selector', '.figure-image > a', elem => {
      return elem.value
    })

    const images = browser.elements('css selector', '.figure-image > a > img', elem => {
      return elem.value
    })

    browser.assert.equal(anchors.length, images.length, 'Anchors match the amount of images')
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...