2017-07-27 1 views
0

La situation est, que je veux utiliser "runScript" afin d'envoyer un xmlhttprequest au début lorsque le site Web est ouvert, trouver un élément dans le responseText , voir si un contenu de texte spécifique est présent et si oui, je veux cliquer sur cet élément.Selenium IDE - TypeError: document.getElementById (..) est null

Je ne suis pas autorisé à vous montrer la source du site, mais j'espère que vous êtes toujours capable de trouver (peut-être) l'erreur.

Mon script:

javascript{ 
var req = new XMLHttpRequest(); 
req.addEventListener("load", function(event) { 
if(req.status >= 200 && req.status < 300) 
{ 
    var parser = new DOMParser(); 
    var xmlDoc = parser.parseFromString(req.responseText, "text/html"); 
    if(document.getElementById("application_widgets__0_selectedUserLanguage_label").childNodes[0].textContent=="English") 
    { 
    document.getElementById("application_widgets__0_selectedUserLanguage_label").parentNode.click() 
    } 
} 
}); 
req.open("GET", ".............................."); 
req.send(); 
} 

Je l'ai déjà testé dans la console de Firebug avant de le mettre dans l'IDE Sélénium et il fonctionne parfaitement. Mais je reçois toujours la même exception quand il en cours d'exécution dans Selenium IDE:

enter image description here

Ma question est: pourquoi ça marche dans Firebug, mais pas dans l'IDE de sélénium et qu'est-ce que je fait de mal?

  • pas il n'y a pas iframe

Merci pour les réponses à l'avance! :)

+1

Notez que [Firebug est arrêté] (https://hacks.mozilla.org/2016/12/firebug-lives-on-in-firefox-devtools/) et [ne fonctionnera plus une fois que Firefox 57 sera disponible ] (https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/). Je suppose que ce dernier s'applique également à Selenium IDE. –

Répondre

0

Cela indique que la page n'est pas encore complètement chargée lorsque vous appelez document.getElementById(). Vous devez envelopper votre code dans un window.addEventListener("load", function() { ... }); pour le faire fonctionner.