J'écris donc un script qui peut être exécuté sur une page, mais je veux cliquer sur cet élément. Malheureusement, il n'a pas de id
à obtenir et j'essaie d'utiliser la fonction .click()
, mais cela ne fonctionne pas. , voici ce que j'ai, quelqu'un sait comment le réparer? Ceci est le seul élément de la classe également
var classes = document.getElementsByClassName('rateRecipe btns-one-small');
var Rate = classes[0];
Rate.click();
Je suggérerais:
document.querySelector('.rateRecipe.btns-one-small').click();
Le code ci-dessus suppose que l'élément donné a les deux de ces classes; sinon, si l'espace est censé impliquer une relation ancêtre-descendant:
document.querySelector('.rateRecipe .btns-one-small').click();
La méthode getElementsByClassName()
prend un nom de classe unique (plutôt que document.querySelector()
/document.querySelectorAll()
, qui prend un sélecteur CSS), et vous en avez transmis deux (vraisemblablement des noms de classe) à la méthode.
Références:
Si vous souhaitez cliquer sur tous les éléments sélectionnés par une classe, vous pouvez utiliser cet exemple (utilisé sur last.fm sur la page Loved tracks pour supprimer tous les éléments).
var divs = document.querySelectorAll('.love-button.love-button--loved');
for (i = 0; i < divs.length; ++i) {
divs[i].click();
};
Avec ES6 et Babel (ne peut pas être exécuté directement dans la console du navigateur)
[...document.querySelectorAll('.love-button.love-button--loved')]
.forEach(div => { div.click(); })
la classe de mon bouton est "input-addon btn btn-default fileinput-existe"
ci-dessous le code m'a aidé
document.querySelector('.input-addon.btn.btn-default.fileinput-exists').click();
mais je veux cliquer sur le deuxième bouton, j'ai deux boutons sur mon écran et j'ai donc utilisé querySelectorAll
var elem = document.querySelectorAll('.input-addon.btn.btn-default.fileinput-exists');
elem[1].click();
ici, elem [1] est le deuxième objet de bouton sur lequel je veux cliquer.