我正在尝试设置一个新的 Nightwatch 项目,以便自动化简单的 Google 搜索页面。我的断言页面上存在的搜索框通过,但我无法对元素执行任何鼠标/键盘操作(Searchbox
, or SearchButton
)
Note:我正在运行夜巡版本1.0
.
测试用例:
module.exports = {
before : function(browser) {
browser.globals.waitForConditionTimeout = 5000;
},
tags: ['google'],
'Demo test Google' : function (browser) {
browser
.url('http://www.google.com') // Go to a url
.waitForElementVisible('body', 10000) // wait till page loads
.pause(2000)
.assert.title('Google') // Make sure Site title matches
.assert.visible('input[name=q]')
.setValue('input[name=q]', 'nightwatchjs') // send values
.click('button[name=btnG]') // click on search box
.pause(1000)
.end()
},
};
我也尝试过这种方法:
var setValue = function(sel, value) {
$(sel).val(value).change();
};
module.exports = {
before : function(browser) {
browser.globals.waitForConditionTimeout = 5000;
},
tags: ['google'],
'Demo test Google' : function (browser) {
browser
.url('http://www.google.com') // Go to a url
.waitForElementVisible('body', 10000) // wait till page loads
.pause(2000)
.assert.title('Google') // Make sure Site title matches
.assert.visible('input[name=q]')
.execute(setValue, ['input[name=q]', 'nightwatchjs'])
.click('button[name=btnG]') // click on search box
.pause(1000)
.end()
},
};
这是输出日志:
[谷歌] 测试套件
运行:演示测试 Google
- √ 133 毫秒后元素可见。
- √ 测试页面标题是否等于“Google” - 18 毫秒。
- √ 测试元素是否可见 - 61 毫秒。
错误日志:
运行 .setElementValue() 协议操作时出错:未知错误:
调用函数结果缺少“值”
TimeoutError:运行 .setValue() 命令时发生错误
上:{“状态”:-1,
“状态”:””,
“价值”:
{“message”:“未知错误:调用函数结果缺少'值'”,
“错误”:[“(会话信息:chrome=77.0.3865.120)”,“(驱动程序信息:chromedriver=2.33.506120
(e3e53437346286c0bc2d2dc9aa4915ba81d9023f),平台=Windows NT
10.0.17763 x86_64)"]},"errorStatus":13,"error":"未知错误:调用函数结果缺少'值'","httpStatusCode":200}
at process._tickCallback (internal/process/next_tick.js:68:7) NoSuchElementError:运行 .click() 命令时发生错误
在 :
在 process._tickCallback (内部/process/next_tick.js:68:7)