Javascript 使用selenium webdriver包为node的WebDriverJS编写e2e测试

Javascript 使用selenium webdriver包为node的WebDriverJS编写e2e测试,javascript,selenium-webdriver,Javascript,Selenium Webdriver,我正在将测试从webdriver和java移植到webdriverjs,我想知道是否有人能帮助我理解为什么这样做: driver.get('http://www.google.com'); driver.findElement(webdriver.By.name('q')).sendKeys('webdriver'); driver.findElement(webdriver.By.name('btnG')).click(); driver.wait(function() { return

我正在将测试从webdriver和java移植到webdriverjs,我想知道是否有人能帮助我理解为什么这样做:

driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnG')).click();
driver.wait(function() {
  return driver.getTitle().then(function(title) {
    return assert.equal(title, 'webdriver - Google Search');
  });
}, 2000);
标题正确包含“webdriver-谷歌搜索”

但这失败了:

driver.get('http://www.google.com');
driver.findElement(webdriver.By.name('q')).sendKeys('webdriver');
driver.findElement(webdriver.By.name('btnG')).click();
driver.wait(function() {
  driver.getTitle().then(function(title) {
    assert.equal(title, 'webdriver - Google Search');
  });
}, 2000);
标题包含主页中的标题,而不是搜索结果页面中的标题


感谢

等待方法要求函数返回布尔值或解析为布尔值的承诺,以便正常工作。在第一个示例中,返回一个布尔值的断言,然后使then调用成为一个承诺,该承诺解析为一个布尔值,您将返回等待,因此等待将正常工作。在第二个示例中,函数不返回等待视为立即成功解析的任何内容,换句话说,它根本不等待