Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/436.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome扩展内容脚本:单击()和异步结果_Javascript_Google Chrome Extension_Web Scraping - Fatal编程技术网

Javascript Chrome扩展内容脚本:单击()和异步结果

Javascript Chrome扩展内容脚本:单击()和异步结果,javascript,google-chrome-extension,web-scraping,Javascript,Google Chrome Extension,Web Scraping,在某些页面上,我的chrome扩展注入了一些代码,这些代码会刮取一些DOM节点的文本并将其发送到后台脚本 这样的节点只有在单击触发异步调用的按钮后才可见——这是一个小的弹出窗口div,在单击几毫秒后出现 我曾考虑在我的内容脚本中复制按钮的onClick代码,但js非常复杂且丑陋,所以我还不能弄清楚调用在做什么。我也不确定是否可以从内容脚本访问站点js的名称空间 我现在的计划是调用按钮的。单击()方法并刮取结果div,但是刮取器找不到div 我认为这可能是一个异步延迟问题,所以为了测试这一点,我设

在某些页面上,我的chrome扩展注入了一些代码,这些代码会刮取一些DOM节点的文本并将其发送到后台脚本

这样的节点只有在单击触发异步调用的按钮后才可见——这是一个小的弹出窗口
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毫秒的微小延迟上。