Selenium IDE - TypeError:document.getElementById(..)为null

时间:2017-07-27 07:07:37

标签: javascript selenium web firebug selenium-ide

情况是,我想使用" runScript"为了在网站打开时在开头发送xmlhttprequest,在responseText中找到一个元素,看看是否存在特定的textcontent,如果是,我想点击该元素。

我不允许向您展示网站的来源,但我希望您仍然能够(或许)找到错误。

我的剧本:

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();
}

我已经在firebug的控制台中对它进行了测试,然后再将它放入Selenium IDE中,它完美无缺。但是在Selenium IDE中运行它时我总是遇到同样的异常:

enter image description here

我的问题是:为什么它在firebug中有效,但在selenium IDE中没有用,我做错了什么?

  • 没有,没有iframe

提前感谢您的答案! :)

1 个答案:

答案 0 :(得分:0)

这表示当您致电document.getElementById()时页面尚未完全加载。您需要将代码包装在window.addEventListener("load", function() { ... });中以使其生效。