Я испытываю трудности с использованием Puppeteer для автоматизации входа в систему для веб-сайта, который использует сценарий "onclick" для отображения своего окна входа в систему. Ссылка для входа выглядит следующим образом:
<li>
<a href="#" onclick='openJqueryDialog("D_Login"); return false;' style="padding-right:0;">Login</a>
<span class="blu">oder</span>
<a href="/de/registrierung" onclick="addGTMEvent('Homepage', 'Clicks - Register')">Registrieren</a>
</li>
К сожалению, на странице отсутствует приглашение к входу в систему, позволяющее обращаться к полям входа в систему по его идентификатору, как показано во многих примерах кукловодов. Существует только возможность войти в систему, используя это всплывающее окно. Я пробовал много разных подходов, чтобы открыть это приглашение, как:
(await page.$$eval(selector, a => a.filter(a => a.textContent === 'Login')))[0].click();
или
let selector = 'a';
page.$$eval(selector, anchors => {
anchors.map(anchor => {
if(anchor.textContent == 'Login') {
anchor.click();
return
}
})
});
После этих действий я ожидаю увидеть это окно входа в систему на скриншоте, который я делаю сразу после этого, используя
await page.screenshot({ path: screenshot2 });
Я также попытался использовать его x-path с помощью page. $ X (). К сожалению, ничего из этого не сработало. Снимок экрана, который я сделал сразу после действия, дал тот же результат на странице, что и перед намеченным кликом. Я ожидаю увидеть окно входа в систему на скриншоте. Может быть, функция скриншота не показывает это окно, даже если бы оно было видимым?
Есть ли способ увидеть браузер в действии, пока выполняется сценарий кукловода? Я провел несколько экспериментов, используя
const browser = await puppeteer.launch({ headless:false });
Но это окно браузера не показывалось. Так что в настоящее время у меня есть только скриншоты в качестве возвращаемого значения.
К сожалению, я не слишком знаком с JavaScript ...
Как мне добиться, чтобы щелкнуть эту ссылку?