我正在努力将测试从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);
标题包含主页的标题,而不是搜索结果页面
由于
答案 0 :(得分:0)
wait方法要求函数返回一个布尔值或一个解析为布尔值的promise,以便正常工作。在你的第一个例子中,返回一个boolean的断言,然后使然后调用一个解析为布尔值的promise(你将返回等待),因此wait将正常工作。在第二个例子中,你的函数不返回任何等待立即成功解决的东西,换句话说它根本不会等待。