使用针对节点的WebDriverJS的selenium-webdriver包编写e2e测试

时间:2014-06-13 20:34:59

标签: 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 driver.getTitle().then(function(title) {
    return assert.equal(title, 'webdriver - Google Search');
  });
}, 2000);

标题正确包含' webdriver - Google搜索'

这失败了:

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);

标题包含主页的标题,而不是搜索结果页面

由于

1 个答案:

答案 0 :(得分:0)

wait方法要求函数返回一个布尔值或一个解析为布尔值的promise,以便正常工作。在你的第一个例子中,返回一个boolean的断言,然后使然后调用一个解析为布尔值的promise(你将返回等待),因此wait将正常工作。在第二个例子中,你的函数不返回任何等待立即成功解决的东西,换句话说它根本不会等待。