我的目标: 我有一个非常复杂的网页,可以从中提取一些信息。 该信息包含在div中。但是div没有名称,页面上也有不计其数的div。
我发现,该页面只有七个,第二部分包含了我要搜索的div。好的,这样的tampermonkey脚本应该可以工作:
allSection = document.getElementsByTagName('section');
console.log ("First Section", allSection );
console.log ("Length All Section", allSection.length);
当我打印getElementByTagname的结果时,它有七个部分(按预期)。 Chrome控制台以非常漂亮的prittyprint显示HTMLCollection。我可以在那找到我的信息。
但下一行已经说过,HTMLCollection只有1个元素长
甚至陌生人: 我可以使用allSection [0]访问第一个部分,而不能使用allSection [1]访问第二个部分。 这与打印的长度(1)一致,但与打印的HTMLCollection不一致。
有什么主意吗?
答案 0 :(得分:0)
抱歉,答案很简单。
我要查找的元素尚未加载。 它们来自AJAX调用。所以基本上,当脚本 正在运行,元素不存在。 当我查看chrome控制台时,元素存在并且该控制台 能够向他们展示。
解决方案: 我有一个粗略的解决方案,等待了几毫秒 直到元素被加载:
setTimeout(function(){},2000);