琦玉 发表于 2022-7-5 10:01:26

请问大佬为什么元素有时候可以找到有时候又找不到

!(data/attachment/forum/202207/05/095726fzk2am51wo5okwk6.png)
```
document.querySelector('li.tabs-selected span');
```
我感觉我在操作网页的时候就会找不到,停下来的时候就会找到,比如下图
!(data/attachment/forum/202207/05/100040mamas0m18ms23aaz.png)
显示null的都是在操作,不动了就显示找到了。

steven026 发表于 2022-7-5 10:31:24

li.tabs-selected找不到<li>说明操作的时候<li>的class会改变

琦玉 发表于 2022-7-5 10:56:53

steven026 发表于 2022-7-5 10:31
li.tabs-selected找不到说明操作的时候的class会改变

但是我打开元素页面,操作没发现li有变

steven026 发表于 2022-7-5 11:09:18

琦玉 发表于 2022-7-5 10:56
但是我打开元素页面,操作没发现li有变

建议你发页面或者录视频

李恒道 发表于 2022-7-5 12:09:08

一般来说是你页面变化了
如果找不到的时候
直接debugger断下来追一下页面

琦玉 发表于 2022-7-5 12:50:40

steven026 发表于 2022-7-5 11:09
建议你发页面或者录视频

网站是公司内部的,外面上不去

琦玉 发表于 2022-7-5 12:51:32

李恒道 发表于 2022-7-5 12:09
一般来说是你页面变化了
如果找不到的时候
直接debugger断下来追一下页面

我试试看

Ne-21 发表于 2022-7-5 14:39:20

可能你的选择器有问题,建议一层一层来选

琦玉 发表于 2022-7-5 23:02:52

我觉得是网站有函数会屏蔽搜索不在当前页面的元素,网站打开链接就是一个模块(由iframe构成),框架是easyui

朱焱伟 发表于 2022-7-6 20:59:28

本帖最后由 朱焱伟 于 2022-7-6 21:08 编辑

我好像遇到类似的情况,比如想获取某网盘iframe内文件列表名时,按道理querySelector能找到,但有时候就不行. 最终的解决方法是用一个野库的waitForKeyElements函数替代querySelector,当然前提是要引入,并且页面有jquery,本质上应该还是等待元素出现.我觉得是元素包在iframe内的问题,开始时iframe里#document是空的,只有head和body,iframe加载是需要时间的,它还没加载完就在js中直接获取对象,所以获取为空.停止操作时它加载完了,就又找到了.在总的iframe元素的onload里面去querySelector应该也能获取
页: [1]
查看完整版本: 请问大佬为什么元素有时候可以找到有时候又找不到