You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
12 lines
613 B
JavaScript
12 lines
613 B
JavaScript
const _ = require('lodash');
|
|
module.exports = function(config) {
|
|
return async function (page) {
|
|
const vinSelector = config.vinElementSelector;
|
|
const vinRegex = /(?<vin>A\d\w\d{3}\w\d{6})/i;
|
|
const possibleVinElements = await page.$$(vinSelector);
|
|
const evaluatedVinElements = await Promise.all(possibleVinElements.map(async element => await page.evaluate(el => el.textContent, element)));
|
|
const correctElement = _.find(evaluatedVinElements, element => vinRegex.test(element));
|
|
|
|
return correctElement ? vinRegex.exec(correctElement).groups.vin : null;
|
|
}
|
|
} |