【问题标题】:Selenium IDE - TypeError: document.getElementById(..) is nullSelenium IDE - TypeError: document.getElementById(..) 为空
【发布时间】:2017-07-27 21:12:27
【问题描述】:

情况是,我想使用“runScript”在网站打开时发送一个xmlhttprequest,在responseText中找到一个元素,看看是否存在特定的文本内容,如果是,我想要点击那个元素。

我不能告诉你网站的来源,但我希望你仍然能够(也许)找到错误。

我的脚本:

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

在将它放入 Selenium IDE 之前,我已经在 firebug 的控制台中对其进行了测试,它运行良好。但是在 Selenium IDE 中运行它时,我总是遇到同样的异常:

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

  • 不,没有 iframe

提前感谢您的回答! :)

【问题讨论】:

标签: javascript selenium web firebug selenium-ide


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 2011-10-03
    • 2014-10-13
    • 2021-08-17
    • 2013-11-30
    • 1970-01-01
    • 2014-11-20
    • 2012-12-02
    相关资源
    最近更新 更多