Comment fixer le sélénium-webriver erreur - $ n'est pas défini?
Je suis en train d'ajouter un événement à un bouton:
str = "a#fCoverage" //my locator
def str2 = "$('" + str + "').addEventListener('click', function(){alert('text')});" //add event
js.exec(str2)
Mais j'obtiens cette erreur:
erreur: org.openqa.le sélénium.WebDriverException: erreur inconnue: $ n'est pas défini
Quelqu'un pourrait-il m'aider s'il vous plaît?
utilisation de la fenêtre". jQuery" au lieu de "$" ...
pouvez-vous montrer un exemple?
pouvez-vous montrer un exemple?
OriginalL'auteur nightmare | 2015-02-23
Vous devez vous connecter pour publier un commentaire.
addEventListener
est une méthode sur ladocument
par opposition à$
(qui est généralement un raccourci pour jQuery).Donc changer
$
àdocument
.js.exec('$(location.reload())') browser.driver.executeScript('$(location.reload())')
De nouveau bien -
location.reload
est une commande JavaScript, il n'a rien à voir avec jQuery. Vous êtes à la rendant beaucoup plus compliqué qu'il doit être.location.reload()
est tout ce dont vous avez besoin. Comme pour la console, est$
en fait associé à jQuery? Ne$ === jQuery
dans la console => ne revienttrue
?Oui, $ === jQuery vrai
Donc ce qui arrive quand vous ne
location.reload
dans un test? ....pourquoi n'êtes-vous pas faire undriver.navigate.refresh
(ou l'équivalent dans votre langue)?....Je veux juste comprendre pourquoi si je suis en train d'écrire dans la console $("a#fCoverage').la méthode addEventListener('click', function(){alert('texte')}); // tout est bien, mais si je fais la même chose dans mon test, j'ai une erreur ($ n'est pas défini) test j'utilise js.exec("ma chaîne") ou le navigateur.le pilote.executeScript("ma chaîne")
OriginalL'auteur Arran
Utilisation
document.querySelector
en place de$
Votre code finirait
OriginalL'auteur Anish