Javascript Nightwatch perform()不是expect之后的方法

Javascript Nightwatch perform()不是expect之后的方法,javascript,selenium,testing,nightwatch.js,Javascript,Selenium,Testing,Nightwatch.js,因此,我相信在查看了文档之后,这应该可以正常工作,但我希望在expect完成后运行一些东西,但是目前它似乎不起作用 工作 browser .url('https://www.google.co.uk/?') .expect.element('.Google Search').value.to.contain('Dashboard') .perform(function() { console.log('elementValue'); }) 断裂 browser .u

因此,我相信在查看了文档之后,这应该可以正常工作,但我希望在expect完成后运行一些东西,但是目前它似乎不起作用

工作

browser
  .url('https://www.google.co.uk/?')
  .expect.element('.Google Search').value.to.contain('Dashboard')
  .perform(function() {
    console.log('elementValue');
  })
断裂

browser
  .url('https://www.google.co.uk/?')
  .expect.element('.Google Search').value.to.contain('Dashboard')
  .perform(function() {
    console.log('elementValue');
  })


Error while running perform command: browser.moveToElement(...).doubleClick(...).setValue(...).click(...).expect.element(...).text.to.contain(...).perform is not a function

当您使用
.expect
时,您会断开Nightwatch命令链并启动expect.js链,因此在调用
.expect.element('.Google Search')
后,您会得到expect.js对象,而不是Nightwatch
浏览器
对象

您需要的是简单地启动另一条链:

browser
  .url('https://www.google.co.uk/?')
  .expect.element('.Google Search').value.to.contain('Dashboard');

browser
  .perform(function() {
    console.log('elementValue');
  });

当您使用
.expect
时,您会断开Nightwatch命令链并启动expect.js链,因此在调用
.expect.element('.Google Search')
后,您会得到expect.js对象,而不是Nightwatch
浏览器
对象

您需要的是简单地启动另一条链:

browser
  .url('https://www.google.co.uk/?')
  .expect.element('.Google Search').value.to.contain('Dashboard');

browser
  .perform(function() {
    console.log('elementValue');
  });

你文章中的代码与错误描述不匹配。我删掉了许多不必要的api方法:)你文章中应该被破坏的代码与你标记为正在工作的代码完全相同。哈哈,是的,我会更新。你帖子中的代码与错误描述不匹配。我删除了许多不必要的api方法:)你帖子中应该被破坏的代码与你标记为正在工作的代码完全相同。哈哈,是的,我会更新。