Add 'settings/' from commit '230545a4a75b0611988fbcea51336a6c316d6a3d'
git-subtree-dir: settings git-subtree-mainline:c26f7b390agit-subtree-split:230545a4a7
This commit is contained in:
@@ -0,0 +1,85 @@
|
||||
module.exports = {
|
||||
commands: {
|
||||
getMenuList: async function () {
|
||||
const menu = []
|
||||
await this.isVisible('@openNavigationBtn', (res) => {
|
||||
if (res.value) {
|
||||
this.click('@openNavigationBtn')
|
||||
}
|
||||
})
|
||||
await this.waitForElementVisible('@fileSidebarNavItem')
|
||||
await this.api
|
||||
.elements('@fileSidebarNavItem', result => {
|
||||
result.value.map(item => {
|
||||
this.api.elementIdText(item.ELEMENT, res => {
|
||||
menu.push(res.value)
|
||||
})
|
||||
})
|
||||
})
|
||||
return menu
|
||||
},
|
||||
getUserMenu: async function () {
|
||||
const menu = []
|
||||
await this
|
||||
.waitForElementVisible('@userMenuBtn')
|
||||
.click('@userMenuBtn')
|
||||
.waitForElementVisible('@userMenuContainer')
|
||||
await this.api
|
||||
.elements('@userMenuItem', result => {
|
||||
result.value.map(item => {
|
||||
this.api.elementIdText(item.ELEMENT, res => {
|
||||
menu.push(res.value)
|
||||
})
|
||||
})
|
||||
})
|
||||
await this
|
||||
.waitForElementVisible('@userMenuBtn')
|
||||
.click('@userMenuBtn')
|
||||
.waitForElementNotVisible('@userMenuContainer')
|
||||
return menu
|
||||
},
|
||||
getFileHeaderItems: async function () {
|
||||
const menu = []
|
||||
await this.waitForElementVisible('@fileTableHeaderItems')
|
||||
await this.api
|
||||
.elements('@fileTableHeaderItems', result => {
|
||||
result.value.map(item => {
|
||||
this.api.elementIdText(item.ELEMENT, res => {
|
||||
menu.push(res.value)
|
||||
})
|
||||
})
|
||||
})
|
||||
return menu
|
||||
}
|
||||
},
|
||||
|
||||
elements: {
|
||||
pageHeader: {
|
||||
selector: '.oc-page-title'
|
||||
},
|
||||
languageValue: {
|
||||
selector: "//button[@id='single-choice-toggle-profile-language']",
|
||||
locateStrategy: 'xpath'
|
||||
},
|
||||
fileSidebarNavItem: {
|
||||
selector: '.oc-sidebar-nav-item'
|
||||
},
|
||||
openNavigationBtn: {
|
||||
selector: '//button[@aria-label="Open navigation menu"]',
|
||||
locateStrategy: 'xpath'
|
||||
},
|
||||
userMenuBtn: {
|
||||
selector: '#_userMenuButton'
|
||||
},
|
||||
userMenuItem: {
|
||||
selector: '#account-info-container li'
|
||||
},
|
||||
userMenuContainer: {
|
||||
selector: '#account-info-container'
|
||||
},
|
||||
fileTableHeaderItems: {
|
||||
selector: '//*[@id="files-table-header"]//span[not(*) and not(ancestor::label)]',
|
||||
locateStrategy: 'xpath'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
const { client } = require('nightwatch-api')
|
||||
const util = require('util')
|
||||
|
||||
module.exports = {
|
||||
url: function () {
|
||||
return this.api.launchUrl + '/#/settings'
|
||||
},
|
||||
|
||||
commands: {
|
||||
navigateAndWaitTillLoaded: async function () {
|
||||
const url = this.url()
|
||||
await await this.navigate(url)
|
||||
while (true) {
|
||||
let found = false
|
||||
await this.waitForElementVisible('@pageHeader', 2000, 500, false)
|
||||
await this.api
|
||||
.elements('@pageHeader', result => {
|
||||
if (result.value.length) {
|
||||
found = true
|
||||
}
|
||||
})
|
||||
if (found) {
|
||||
break
|
||||
}
|
||||
await client.refresh()
|
||||
}
|
||||
return this.waitForElementVisible('@pageHeader')
|
||||
},
|
||||
|
||||
getSettingsValue: async function (key) {
|
||||
let output
|
||||
switch (key) {
|
||||
case 'Language':
|
||||
await this.waitForElementVisible('@languageValue')
|
||||
.getText('@languageValue', (result) => {
|
||||
output = result.value
|
||||
})
|
||||
break
|
||||
default:
|
||||
throw new Error('failed to find the setting')
|
||||
}
|
||||
return output
|
||||
},
|
||||
changeSettings: async function (key, value) {
|
||||
const selectXpath = util.format(this.elements.languageSelect.selector, value)
|
||||
switch (key) {
|
||||
case 'Language':
|
||||
await this.waitForElementVisible('@languageValue')
|
||||
.click('@languageValue')
|
||||
.useXpath()
|
||||
.waitForElementVisible(this.elements.languageDropdown.selector)
|
||||
.click(selectXpath)
|
||||
.waitForElementNotVisible(this.elements.languageDropdown.selector)
|
||||
.useCss()
|
||||
break
|
||||
default:
|
||||
throw new Error('failed to find the setting')
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
elements: {
|
||||
pageHeader: {
|
||||
selector: '.oc-page-title'
|
||||
},
|
||||
languageValue: {
|
||||
selector: "//label[.='Language']/..//button[starts-with(@id, 'single-choice-toggle')]",
|
||||
locateStrategy: 'xpath'
|
||||
},
|
||||
languageDropdown: {
|
||||
selector: "//label[.='Language']/..//div[starts-with(@id, 'single-choice-drop')]",
|
||||
locateStrategy: 'xpath'
|
||||
},
|
||||
languageSelect: {
|
||||
selector: "//label[.='Language']/..//div[starts-with(@id, 'single-choice-drop')]//label[normalize-space()='%s']",
|
||||
locateStrategy: 'xpath'
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user