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:
我的问题是:为什么它的萤火工作,但不是在硒IDE和我做了什么错?
- 没有没有IFRAME
谢谢你的答案提前! :)
答
这表示当您拨打document.getElementById()
时页面尚未完全加载。您需要将代码包装在window.addEventListener("load", function() { ... });
中以使其正常工作。
请注意[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。 –