为什么selenium无法添加事件监听器?

时间:2014-11-12 17:38:25

标签: javascript c# selenium

我尝试了这段代码(C#):

string javascript = "window.document.addEventListener('domready', function(){alert('READY');}, false);console.log('test');"
((IJavaScriptExecutor)d).ExecuteScript(javascript);

格式化的Javascript代码是:

window.document.addEventListener(
  'domready', 
  function() {
    alert('READY');
  }, 
  false);
console.log('test');

" READY"弹出窗口永远不会出现。你对如何解决这个问题有所了解吗?

一旦页面开始加载就会执行javascript(在屏幕上显示任何内容之前执行console.log('test')命令)。

1 个答案:

答案 0 :(得分:0)

我相信READY弹出窗口永远不会显示,因为事件监听器是在' domready'之后添加的。发射它的事件。您可以利用document.readyState ==="完成"通过简单地执行以下操作来实现您想要的目标:

if (document.readyState === "complete") {
  // do stuff
} else {
  window.document.addEventListener('domready', doStuff);
}

希望这有帮助!