Использование объекта pages в Nightwatch JS
Я использую Ночной дозор "0.8.6". Согласно документации на страницах, я создал pages/login.js
file и добавьте каталог в файл конфигурации с помощью:
module.exports = {
url: function() {
return this.launchUrl;
}
};
в документации упоминается this.api
, но это не свойство клиента / браузера. видимо, доступно.
Я изменил существующий тест можно использовать:
module.exports = {
'Login page has a login button' : function (browser) {
browser
.url(browser.page.login().url())
.waitForElementVisible('body', 10000)
.assert.containsText('button', 'SIGN IN')
.end();
}
}
тест теперь терпит неудачу. .url пытается открыть selenium с помощью data:,
, вместо значения этого.launchUrl, который является localhost:3000.
объект страницы, по-видимому, оценивается в контексте теста входа в систему, поэтому это в объекте страницы должно иметь это.launchUrl. Погружаясь в источник, я вижу, что в миксе также есть объекты обертки страницы.
как я могу использовать правильно создать и использовать объект страницы в 0.8.6?
2 ответов
Я думаю, вы можете попробовать добавить один var для вызова логина.в JS страницы. вот так:
module.exports = {
'Login page has a login button' : function (browser) {
var LoginPage = browser.page.login();
LoginPage.navigate();
LoginPage
.waitForElementVisible('body', 10000)
.assert.containsText('button', 'SIGN IN')
.end();
}
}
Итак, согласно документам, которые вы должны:
- "Каждый объект страницы должен находиться в отдельном файле, расположенном в определенной папке. Nightwatch считывает объекты страницы из папки (или папок), указанной в page_objects_path
свойства конфигурации."
вы настроили свой ?
после этого вы можете создать файл js в этой папке, например:
module.exports = function(client) {
return {
gotoUrl: function() {
return client
.url(client.launchUrl);
},
};
};
и затем вы можете написать свой тест например:
module.exports = {
'Login page has a login button': (browser) => {
browser.page.pagescriptname()
.gotoUrl()
.waitForElementVisible('body', 10000)
.assert.containsText('button', 'SIGN IN')
.end();
}
}
убедитесь, что вы настроили launch_url
в своем ночном дозоре.JS-файл (или это можно изменить динамически (что я сделал для своего проекта) через .