J'essaie de créer une automatisation sur un site Web avec marionnettiste et j'ai un problème avec cela lorsque j'essaye de cliquer sur un élément dans la liste de sélection.
Tout ce que j'ai trouvé à ce sujet après une recherche sur Google, c'est de sélectionner un élément, mais uniquement lorsque la liste est à l'intérieur de l'élément "select". Mon problème est que le HTML que j'essaie d'automatiser se trouve à l'intérieur d'un 'div':
<div class="dropdown open dropdown--gray">
<div class="dropdown__header">
<div class="dropdown__field">other</div>
<div class="dropdown__opener">
<span class="icon icon-chevron-down"></span>
</div>
</div>
<div class="dropdown__list">
<div class="dropdown__list-item selected">other</div>
<div class="dropdown__list-item">.org</div>
<div class="dropdown__list-item">.co.uk</div>
<div class="dropdown__list-item">.net</div>
<div class="dropdown__list-item">.gov</div>
<div class="dropdown__list-item">.de</div>
<div class="dropdown__list-item">.fr</div>
<div class="dropdown__list-item">.nl</div>
<div class="dropdown__list-item">.com</div>
<div class="dropdown__list-item">.be</div>
<div class="dropdown__list-item">.jpg</div>
</div>
</div>
J'ai essayé ceci:
await page.click('div.dropdown__field');
const elementHandle4=await page.$$("div.dropdown__list-item");
await elementHandle4[8].click();
mais en fait ce n'est pas un clic sur l'élément. Lorsque j'ouvre manuellement la liste après l'exécution de ce code, je vois qu'il fait défiler le défilement de la liste mais que je n'ai pas cliqué sur l'élément.
Merci
Essayez quelque chose comme ceci:
await page.click('.dropdown__field');
await page.click('.dropdown__list > div:nth-child(8)');
METTRE À JOUR:
Cela ressemble au problème dans la fenêtre car il fonctionne correctement et sélectionne l'option '.nl' sans aucun défilement avec le script suivant:
(async () => {
const browser = await puppeteer.launch({
headless: false,
defaultViewport: null,
});
const page = await browser.newPage();
await page.goto('https://userinyerface.com/game.html');
await page.click('.dropdown__field');
await page.click('.dropdown__list > div:nth-child(8)');
})();
Mais cela ne fonctionnera pas si je supprime la defaultViewport: null
propriété
Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.
En cas d'infraction, veuillez [email protected] Supprimer.
laisse moi dire quelques mots