Создание простого базового объекта страницы в Nightwatch.js - PullRequest
0 голосов
/ 11 сентября 2018

Хорошо, поэтому я прочитал об использовании page_objects в nightwatch.js , но у меня все еще возникают проблемы с этим (что, я убежден, связано с чем-то очевидным и / или просто).

Используя http://nightwatchjs.org/guide/#page-objects в качестве руководства, я добавил файл cookieremoval.js в мою папку page_objects .

module.exports = {
  elements: {
    removeCookies: {
    selector: '.banner_continue--2NyXA'
    }
  }
}

В моем файле nightwatch.conf.js , который у меня есть;

page_objects_path: "tests/functional/config/page_objects",

А в моем тестовом скрипте у меня есть;

module.exports = {
  "/cars/road-tax redirects to /car-tax/ ": browser => {
  browser.url(browser.launch_url + browser.globals.carReviews)
    .assert.urlEquals(browser.launchUrl + "/car-reviews/") 
    .waitForElementPresent('@cookieRemove', 3000)
    .click('@cookieRemove')
  .end(); 
  },
};

Однако, когда я запускаю тест, я получаю сообщение об ошибке;

Timed out while waiting for element <@cookieRemove> 

Есть идеи, почему это не работает?

Большое спасибо

1 Ответ

0 голосов
/ 11 сентября 2018

Прежде всего, вы никогда не создавали объект своей страницы.Вы просите объект браузера искать неизвестный элемент, поэтому время ожидания истекло.Ваш код должен выглядеть примерно так в вашем тестовом скрипте: var cookieRemoval = browser.page.cookieremoval();, затем используйте этот объект для доступа к этим переменным и функциям в вашем объекте страницы.Например, если вы хотите получить доступ к элементу удаления cookie, вы должны сделать это cookieRemoval.click('@removeCookies');.

Во-вторых, вам нужно будет знать, когда использовать глобальный объект browser и когда использовать вашу страницу.объект.Если вам нужен доступ к чему-либо внутри вашего объекта страницы, очевидно, используйте объект страницы для вызова функции или доступа к переменной.В противном случае browser не будет знать, что элемент, который вы ищете, существует.Надеюсь, это поможет вам, я бы определенно потратил больше времени на изучение объектов и, в частности, их использования в nightwatch.js.

...