正在努力同时理解WebDriverJS和promise。。。大多数示例代码都是针对Python/Java的,而不是Javascript。我所要做的就是获取一个页面的完整html。因此,如果您查看WebDriverJS的相同代码:
var webdriver = require('selenium-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() {
return driver.getTitle().then(function(title) {
return title === 'webdriver - Google Search';
});
}, 1000);
我试图简单地返回整个html文档,而不仅仅是标题。在Python中,这将是driver.page_source。我从示例中更好地了解了,所以我在这里有点困惑。
如果文档不清楚,我通常更喜欢研究源代码。
以下是包含相关getPageSource()
函数的主要webdriver.js
源:
/**
* Schedules a command to retrieve the current page's source. The page source
* returned is a representation of the underlying DOM: do not expect it to be
* formatted or escaped in the same way as the response sent from the web
* server.
* @return {!webdriver.promise.Promise.<string>} A promise that will be
* resolved with the current page source.
*/
webdriver.WebDriver.prototype.getPageSource = function() {
return this.schedule(
new webdriver.Command(webdriver.CommandName.GET_PAGE_SOURCE),
'WebDriver.getAllWindowHandles()');
};