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

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

问题描述:

这种情况是,我想使用“runScript”为了在网站被打开时在开始时发送xmlhttprequest,在responseText中查找一个元素,看看是否存在特定的文本内容,如果是,我想单击该元素。Selenium IDE - TypeError:document.getElementById(..)为空

我不允许向您显示网站的来源,但我希望您仍然能够(可能)发现错误。

我的脚本:

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的控制台将其放入硒IDE之前和它完美的作品。但是,我在运行它时总是得到相同的例外硒IDE:

enter image description here

我的问题是:为什么它的萤火工作,但不是在硒IDE和我做了什么错?

  • 没有没有IFRAME

谢谢你的答案提前! :)

+1

请注意[Firebug已停用](https://hacks.mozilla.org/2016/12/firebug-lives-on-in-firefox-devtools/),并且[在Firefox 57发布后不再有效](https://blog.mozilla.org/addons/2016/11/23/add-ons-in-2017/)。我认为后者也适用于Selenium IDE。 –

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