Javascript Chrome扩展内容脚本:单击()和异步结果
在某些页面上,我的chrome扩展注入了一些代码,这些代码会刮取一些DOM节点的文本并将其发送到后台脚本 这样的节点只有在单击触发异步调用的按钮后才可见——这是一个小的弹出窗口Javascript Chrome扩展内容脚本:单击()和异步结果,javascript,google-chrome-extension,web-scraping,Javascript,Google Chrome Extension,Web Scraping,在某些页面上,我的chrome扩展注入了一些代码,这些代码会刮取一些DOM节点的文本并将其发送到后台脚本 这样的节点只有在单击触发异步调用的按钮后才可见——这是一个小的弹出窗口div,在单击几毫秒后出现 我曾考虑在我的内容脚本中复制按钮的onClick代码,但js非常复杂且丑陋,所以我还不能弄清楚调用在做什么。我也不确定是否可以从内容脚本访问站点js的名称空间 我现在的计划是调用按钮的。单击()方法并刮取结果div,但是刮取器找不到div 我认为这可能是一个异步延迟问题,所以为了测试这一点,我设
div
,在单击几毫秒后出现
我曾考虑在我的内容脚本中复制按钮的onClick
代码,但js非常复杂且丑陋,所以我还不能弄清楚调用在做什么。我也不确定是否可以从内容脚本访问站点js的名称空间
我现在的计划是调用按钮的。单击()
方法并刮取结果div
,但是刮取器找不到div
我认为这可能是一个异步延迟问题,所以为了测试这一点,我设置了一个较长的超时:
document.querySelector('#buttonId').click();
setTimeout(console.log(document.querySelector('#popupDiv').innerText), 4500);
不幸的是,延迟函数仍然返回null
有没有更好的方法来实现这一点 将querySelector与ID一起使用时,需要在它们前面加上“#” 您还需要在匿名函数中包装超时
document.querySelector("#buttonId").click()
setTimeout(function() {
console.log(document.querySelector("#popupDiv").textContent)
}, 4500)
啊!!非常感谢。对于后代来说:“#”是我简化选择器字符串时的一个转录错误(我在OP中编辑过)。一旦我修改了console.log()函数,它就工作得很好,即使是在500毫秒的微小延迟上。