Я пытаюсь автоматизировать процесс заказа еды на UberEats с помощью кукловода и Google Cloud Functions. Однако заполнение формы и нажатие кнопки «Далее» не сработают. В настоящее время я использую Node.js 8 и кукольника версии 2.1.1.
exports.main = (req, res) => {
const puppeteer = require('puppeteer');
let selector = 'button[class="c1 cg ch ci bb bc bd cj ch az ao aq bu aj c1 ck cl cm cn co"]';
async function run () {
try {
const browser = await puppeteer.launch({args: ['--no-sandbox']});
const page = await browser.newPage();
await page.goto("https://ubereats.com/nl");
await page.waitFor('input[id="location-typeahead-home-input"]');
await page.evaluate(() => {
document.querySelector('input[id="location-typeahead-home-input"]').value = "Leuven";
document.querySelector('selector').click();
});
await page.waitForSelector('div[class="f5 bc bd be ew bf b1 he"]');
let element = await page.evaluate(() => {
return document.querySelector('h2').innerText;
})
browser.close();
return element;
} catch (e) {
return e;
}
}
run()
.then(el => {
res.set('Content-Type', 'text/html');
res.status(200).send(el);
})
.catch(err => {
console.error(err);
res.status(500).send("An Error occured" + err);
})
};
Webscraping веб-страницы работает нормально. Выполнение этого кода не возвращает Error только пустой объект.