[英]nightwatch fails when initializing page object
我正在嘗試測試Vue應用程序。 我有2個簡單的頁面對象和2個簡單的規范文件。 當我運行e2e測試時,第一個(登錄)順利通過,但第二個失敗並出現以下錯誤:
錯誤:元素“客戶端”沒有選擇器屬性而是找到了屬性:功能,全局變量,sessionId,選項,launchUrl,launch_url,screenshotsPath,Keys,session,sessions,sessions,sessions,timeouts,timeoutsAsyncScript,timeoutsImplicitWait,elemen t,elementIdElement,elements,elementIdElements,elementActive ,elementIdAttribute,elementIdClick,elementIdCssProperty,elementIdDisplayed,elementIdLocationInView,elementIdLocation,elementIdName,elementIdClear,elementIdSelected,element tIdEnabled,elementIdEquals,elementIdSize,elementIdText,elementIdValue,submit,source,contexts,set,Click, mouseButtonDown,mouseButtonUp,執行,執行eAsync,execute_async,幀,frameParent,窗口,windowHandle,windowMaximize,window_handle,windowHandles,window_handles,windowSize,windowPosition,刷新,返回,前進,截屏,URL,狀態,標題,密鑰,cookie,接受,accept_alert,dismissAlert,setAlertText,getAlertText,dismiss_alert,sessionLog,sessionLogTypes, 單擊,clearValue,getAttribute,getCssProperty,getElementSize,getLocation,getLocationInView,getTagName,getText,getValue,isVisible,moveToElement,setValu e,submitForm,sendKeys,switchWindow,resizeWindow,setWindowPosition,maximizeWindow,saveScreenshot,getTitle,closeWindow,init,urlHash ,getCookie,setCookie,deleteCookie,deleteCookies,injectScript,getLogTypes,getLog,isLogAvaiable,waitForElementNotPresent,waitForElementNotVisible,waitForElementPresent,waitForElementVisible,結束,暫停,執行,UseCss,useRecursion,useTest,在C:\\ aquaprojects \\ src \\ bitbucket的新元素(C:\\ aquaprojects \\ src \\ bitbucket.org \\ scalock \\ tenantmanager \\ client \\ node_modules \\ nightwatch \\ lib \\ page-object \\ element.js:11:11)中命名。 org \\ scalock \\ tenantmanager \\ client \\ node_modules \\ nightwatch \\ lib \\ page-object \\ page-utils.js:39:35 at Array.forEach(native)at C:\\ aquaprojects \\ src \\ bitbucket.org \\ scalock \\ tenantmanager \\ Array上的client \\ node_modules \\ nightwatch \\ lib \\ page-object \\ page-utils.js:35:24 .forEach(本機)位於module.exports.createElements(C:\\ aquaprojects \\ src \\ bitbucket.org \\ scalock \\ tenantmanager \\ client \\ node_modules \\ nightwatch \\ lib \\ page-object \\ page-utils.js:34:14)在Object.parent的Object.Page(C:\\ aquaprojects \\ src \\ bitbucket.org \\ scalock \\ tenantmanager \\ client \\ node_modules \\ nightwatch \\ lib \\ page-object \\ page.js:19:6)。(匿名函數)[as租戶](C:\\ aquaprojects \\ src \\ bitbucket.org \\ scalock \\ tenantmanager \\ client \\ node_modules \\ nightwatch \\ lib \\ core \\ api.js:469:16)在(C:/ aquaprojects / src / bitbucket)。 org / scalock / tenantmanager / client / test / e2e / specs / tenants.spec.js:7:26)。 (C:\\ aquaprojects \\ src \\ bitbucket.org \\ scalock \\ tenantmanager \\ client \\ node_modules \\ nightwatch \\ lib \\ util \\ utils.js:35:8)
login.js:
module.exports = {
url: 'http://localhost:8080/#/login',
elements: {
app: '#app',
loginSection: '.login-page',
title: 'h3',
submitButton: '.btn-primary',
username: '#username',
password: '#password'
}
}
login.spec.js:
let login = null
module.exports = {
before: function (client) {
console.log('*********** Init login page *******************')
login = client.page.login()
},
'open login page': function () {
login
.navigate()
.waitForElementVisible('@app', 5000)
.assert.elementPresent('@loginSection')
.assert.containsText('@title', 'Tenant Manager Login')
},
'try to login': function () {
login.setValue('@username', 'administrator')
login.setValue('@password', '1234')
login.click('@submitButton')
login.waitForElementNotPresent('@submitButton')
},
after: function (client) {
client.end()
}
}
這一遍通過了,另一遍基本上是復制/粘貼,但有一些更改在此行失敗:
租戶= client.page.tenant()
tenant.js:
module.exports = {
url: 'http://localhost:8080/#/tenants',
elements: {
tab: '#tenants',
tenantsFilter: '.tenants-filter input',
statusFilter: '.status-filter input',
add: '.add-tenant'
}
}
tenants.spec.js:
let tenant = null
module.exports = {
before: function (client) {
console.log('*********** Init tenant page *******************')
tenant = client.page.tenant()
},
'open tenant page': function () {
console.log('*********** Navigating to tenant page *******************')
tenant
.navigate()
.waitForElementVisible('@tab', 5000)
.assert.elementPresent('@tenantsFilter')
// .assert.containsText('@title', 'Tenant Manager Login')
},
after: function (client) {
client.end()
}
}
nightwatch.conf.js:
require('babel-register')
var config = require('../../config')
// http://nightwatchjs.org/gettingstarted#settings-file
module.exports = {
src_folders: ['test/e2e/specs'],
output_folder: 'test/e2e/reports',
custom_assertions_path: ['test/e2e/custom-assertions'],
"page_objects_path" : "test/e2e/pages",
selenium: {
start_process: true,
server_path: require('selenium-server').path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': require('chromedriver').path
}
},
test_settings: {
default: {
selenium_port: 4444,
selenium_host: 'localhost',
silent: true,
globals: {
devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true
}
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true
}
}
}
}
您尚未定義頁面對象路徑
require('babel-register')
var config = require('../../config')
// http://nightwatchjs.org/gettingstarted#settings-file
module.exports = {
src_folders: ['test/e2e/specs'],
output_folder: 'test/e2e/reports',
custom_assertions_path: ['test/e2e/custom-assertions'],
"page_objects_path" : "test/e2e/pages", //page-object path
selenium: {
start_process: true,
server_path: require('selenium-server').path,
host: '127.0.0.1',
port: 4444,
cli_args: {
'webdriver.chrome.driver': require('chromedriver').path
}
},
test_settings: {
default: {
selenium_port: 4444,
selenium_host: 'localhost',
silent: true,
globals: {
devServerURL: 'http://localhost:' + (process.env.PORT || config.dev.port)
}
},
chrome: {
desiredCapabilities: {
browserName: 'chrome',
javascriptEnabled: true,
acceptSslCerts: true
}
},
firefox: {
desiredCapabilities: {
browserName: 'firefox',
javascriptEnabled: true,
acceptSslCerts: true
}
}
}
}
創建目錄“頁面”並將租戶放入其中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.