我正在尝试建立一个新的Nightwatch项目,以自动化一个简单的Google搜索页面。我对页面上存在的搜索框的断言通过了,但是我无法对元素(SearchboxSearchButton)执行任何鼠标/键盘操作

注意:我正在运行Nightwatch版本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]测试套件

跑步:演示测试Google


√133毫秒后可见元素。
√测试网页标题是否等于“ Google”-18毫秒。
√测试元素是否可见-61毫秒。


错误日志:


  运行.setElementValue()协议操作时出错:未知错误:
  调用函数结果缺少“值”
  
  TimeoutError:运行.setValue()命令时发生错误
  于:{“状态”:-1,
      “州”:””,
       “值”:
        {“ message”:“未知错误:调用函数结果缺少'value'”,
         “ error”:[“(会话信息:chrome = 77.0.3865.120)”,“(驱动程序信息:chromedriver = 2.33.506120
  (e3e53437346286c0bc2d2dc9aa4915ba81d9023f),平台= Windows NT
  10.0.17763 x86_64)“]},” errorStatus“:13,” error“:”未知错误:调用函数结果缺少'value'“,” httpStatusCode“:200}
         在process._tickCallback(内部/进程/next_tick.js:68:7)处NoSuchElementError:运行.click()命令时发生错误
  上 :
         在process._tickCallback(内部/进程/next_tick.js:68:7)

最佳答案

尝试先在输入上单击(),然后再使用setValue(),有时会有所帮助

关于javascript - Nightwatch中的setValue方法不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58437187/

10-12 21:12