Comparing version 2.0.1 to 2.0.2
@@ -27,41 +27,32 @@ 'use strict'; | ||
return await this.browser.newPage(); | ||
} | ||
const browserPage = await this.browser.newPage(); | ||
async goto(page, url) { | ||
internals.assertPage(page); | ||
await page.goto(url); | ||
return page; | ||
return { | ||
...browserPage, | ||
getElement: browserPage.$, | ||
getElements: browserPage.$$, | ||
evalHandle: this.evalHandle.bind(this, browserPage), | ||
tableToJson: this.tableToJson.bind(this, browserPage) | ||
}; | ||
} | ||
async getElement(page, selector) { | ||
// Intended to evaluate an ElementHandle | ||
async evalHandle(page, elHandle, props) { | ||
return await page.$(selector); | ||
} | ||
return await page.evaluate((el) => { | ||
async getElements(page, selector) { | ||
return [].concat(props).map((prop) => { | ||
return await page.$$(selector); | ||
} | ||
const isFunc = prop.slice(-2) === '()'; | ||
async getHtml(page, selector) { | ||
internals.assertPage(page); | ||
return await page.$eval(selector, (el) => el.innerHTML); | ||
return isFunc ? el[prop.slice(0, -2)]() : el[prop]; | ||
}); | ||
}, elHandle); | ||
} | ||
async getText(page, selector) { | ||
internals.assertPage(page); | ||
return await page.$eval(selector, (el) => el.innerText); | ||
} | ||
async tableToJson(page, selector) { | ||
internals.assertPage(page); | ||
// Serializes the table into a string with rows separated by '\n', | ||
// cols separated by '\t' | ||
const tableInnerText = await this.getText(page, selector); | ||
const tableInnerText = await this.evalHandle(page, page.$(selector), 'innerText'); | ||
@@ -79,8 +70,1 @@ // Will take the first 2 columns in a table, | ||
}; | ||
internals.assertPage = (page) => { | ||
if (!page) { | ||
throw new Error('"page" is required'); | ||
} | ||
}; |
{ | ||
"name": "clickity", | ||
"version": "2.0.1", | ||
"version": "2.0.2", | ||
"description": "", | ||
@@ -5,0 +5,0 @@ "author": "wsw", |
3077
62