上一篇已经讲述了如何搭建环境,这一片主要针对语法进行
目录
测试案例
module.exports = {
'Demo test Google' : function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'nightwatch')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.pause(1000)
.assert.containsText('#main', 'Night Watch')
.end();
}
};
这里提示下,每个测试最好在结尾执行end(), 这样nigthwatch才会关闭selenium session
上述为nightwatch的一个案例,nigthwatch默认使用css选择器作为定位元素。
在nightwatch里,source目录下的每个js文件为一个测试类,例如如下工程中有两个测试文件,则为两个类
一个文件作为一个测试类,一个测试类可以有多个步骤
module.exports = {
'step one' : function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'nightwatch')
.waitForElementVisible('button[name=btnG]', 1000)
},
'step two' : function (browser) {
browser
.click('button[name=btnG]')
.pause(1000)
.assert.containsText('#main', 'Night Watch')
.end();
}
};
也可以如下表示
this.demoTestGoogle = function (browser) {
browser
.url('http://www.google.com')
.waitForElementVisible('body', 1000)
.setValue('input[type=text]', 'nightwatch')
.waitForElementVisible('button[name=btnG]', 1000)
.click('button[name=btnG]')
.pause(1000)
.assert.containsText('#main', 'The Night Watch')
.end();
};
Using XPath选择器
默认nightwatch是使用css选择器进行元素定位的,在测试类中使用useXpath()函数进行切换,例如
module.exports = {
'get csdn access time' : function (browser) {
browser
.url('https://blog.csdn.net/Viogs')
.waitForElementVisible('body', 1000)
.useXpath() //使用xpath函数切换选择器为xpath
.getAttribute('//*[@id="asideProfile"]/div[3]/dl[2]/dd', "title", function (res) {
console.log("访问次数为"+res.value); //获取博客的访问次数,并且打印出来
})
browser.end()
}
}