puppeteer-google-translate
Version:
Translate texts or documents with Google Translate using Puppeteer
34 lines (33 loc) • 1.24 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const launch_1 = __importDefault(require("../launch"));
exports.default = async (query, opt) => {
const { browser, page, timeout } = await launch_1.default(opt);
try {
await page.goto('https://translate.google.com/' + query);
const el1 = await page.waitForSelector('span>span[data-phrase-index="0"]>span[jsaction]', {
timeout
});
const texts = [await el1.evaluate((e) => e.textContent)];
const len = (await page.$$('span>span[data-phrase-index]>span[jsaction]'))
.length;
if (len === 1)
return texts[0];
for (let i = 1; i < len; i++) {
const el = await page.waitForSelector(`span>span[data-phrase-index="${i}"]>span[jsaction]`, {
timeout
});
texts.push(await el.evaluate((e) => e.textContent));
}
return texts.join(' ');
}
catch (err) {
throw err;
}
finally {
await browser.close();
}
};