情况是,我想使用" 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中运行它时我总是遇到同样的异常:
我的问题是:为什么它在firebug中有效,但在selenium IDE中没有用,我做错了什么?
提前感谢您的答案! :)
答案 0 :(得分:0)
这表示当您致电document.getElementById()
时页面尚未完全加载。您需要将代码包装在window.addEventListener("load", function() { ... });
中以使其生效。