Проверка наличия всех книг из файла JSON на веб-странице с помощью Nightwatch.js

1

Я новичок в Nightwatch.js и JavaScript в целом. Я пытаюсь сделать тест, который будет проверять наличие всех книг из файла JSON на соответствующей веб-странице. Кроме того, если на этой странице нет книг, я хочу проверить, присутствует ли текст "Нет продуктов в категории".

Я создал страницу с этой командой:

var books = require('../data/books.json')
var x = '';
module.exports = {
    elements: {
        productList: {
            selector: '#product-list',
            locateStrategy: 'css selector'
        }
    },

    commands: [{
        checkBooks: function () {
            this.api
                .elements('css selector', this.elements.productList.selector, function (result){
                    for (i in books.biographies) {
                        x = books.biographies[i].title;
                        for (j in books.biographies.title) {
                            x = books.biographies[i].title[j];
                        }
                    }
                    if (result.status > 0) {
                        console.log(j);
                    } else {
                        this.assert.containsText('#product-list', 'There are no products in the category');
                    }
                })
        }
    }]
}

но тест всегда терпит неудачу, потому что он ожидает, что страница будет пустой.

Вот пример моих данных JSON:

"biographies":[  
   {  
      "title":"The Story of my Life",
      "author":"Graham Peterson",
      "publisher":"Mirabilis",
      "ISBN":"########",
      "price":"#.##"
   },
   {  
      "title":"Clear Waters Around Me",
      "author":"Penny Wize",
      "publisher":"Mirabilis",
      "ISBN":"#########",
      "price":"##.##"
   }
]

Я был бы признателен за любую помощь. Спасибо.

ура

Теги:
data-driven-tests
automated-tests
nightwatch.js

1 ответ

0

После некоторого вовлечения кода и множества исследований я наконец нашел решение для этого.

checkBiographies: function() {
        this.api
            .elements('css selector', this.elements.error.selector, function (result) {
                if (result.value.length > 0) {
                    this.assert.cssClassPresent('#product-list > [class=err]', 'err');
                    console.log('No products!')
                } else {
                    var x = '';

                    for (i in books.biographies) {
                        x += books.biographies[i].title;
                        x += "\n";
                    }
                    console.log(x);
                }
            })
    }

В принципе, ранее я проверял двойной вложенный массив внутри JSON файла. Я исправил это и только что изменил условия. Теперь я сначала проверяю, присутствует ли на странице класс ошибок, а затем, если он не присутствует, я делаю сравнение.

Надеюсь, это поможет кому-то в будущем.

ура

Ещё вопросы

Сообщество Overcoder
Наверх
Меню