player 发表于 2023-2-25 20:24:00

<!---->之间的元素如何获取

<!——>之间的元素在页面正常显示,检查也能正常定位到,控制台也能querySelector到,就是在脚本里找不到

!(data/attachment/forum/202302/25/201435gi7tpt0v7vlr0ci0.png)

cxxjackie 发表于 2023-2-25 20:24:01

.weu-card-body > div > div:nth-child(2)
这样写看看,因为querySelector获取的是第一个匹配目标,注释那个地方曾经是div的话,库就会获取到它,然后元素被替换成了注释。在控制台获取时,这里已经是注释,所以第一个div就是下面那个,而脚本执行时页面还没有渲染完全,你要获取的元素是当时的第二个。
我记得你之前反馈过ElementGetter获取不到的问题,我就怀疑过是这种情况,不过这个也不好从库的层面解决,严格来说不算错误,只是选择器的写法问题。

李恒道 发表于 2023-2-25 20:29:21

用elemengetter库
https://bbs.tampermonkey.net.cn/thread-2726-1-1.html

cxxjackie 发表于 2023-2-25 20:35:04

脚本没理由获取不到的,要么是iframe,要么是延迟加载,<!——>只是注释元素,不影响元素获取。

player 发表于 2023-2-25 20:35:14

李恒道 发表于 2023-2-25 20:29
用elemengetter库
https://bbs.tampermonkey.net.cn/thread-2726-1-1.html

用了,控制台一样的路径就是找不到或者找到别的元素去了,就好像被注释掉不存在一样

player 发表于 2023-2-25 20:46:03

cxxjackie 发表于 2023-2-25 20:35
脚本没理由获取不到的,要么是iframe,要么是延迟加载,只是注释元素,不影响元素获取。 ...

!(data/attachment/forum/202302/25/204321ui7jimtrrnh9bbhd.png)
!(data/attachment/forum/202302/25/204356kc3kk2pm1wgxfvc3.png)
!(data/attachment/forum/202302/25/204429u2jryckezy0zcnbb.png)
同样的路径,找到了不一样的,很奇怪。。。

cxxjackie 发表于 2023-2-25 20:46:38

player 发表于 2023-2-25 20:35
用了,控制台一样的路径就是找不到或者找到别的元素去了,就好像被注释掉不存在一样 ...

你是不是用了自动生成的选择器?:nth-child可能定位错了,这种看起来是vue框架,<!——>是元素的占位符,在页面渲染过程中这部分可能曾经是元素,然后脚本注入得早选择器就错位了,可以试着把nth-child从1改成2再看看,最好还是自己写,自动生成的不太靠谱。

cxxjackie 发表于 2023-2-25 20:49:38

player 发表于 2023-2-25 20:46
!(data/attachment/forum/202302/25/204321ui7jimtrrnh9bbhd.png)
!(data/attachment/forum/202302/2 ...

估计就是框架的问题,注释的那个地方可能曾经是个div,你试试获取第二个。

李恒道 发表于 2023-2-25 21:01:25

player 发表于 2023-2-25 20:46
!(data/attachment/forum/202302/25/204321ui7jimtrrnh9bbhd.png)
!(data/attachment/forum/202302/2 ...

延迟加载问题吧
debugger追一下看看

player 发表于 2023-2-25 21:03:56

cxxjackie 发表于 2023-2-25 20:49
估计就是框架的问题,注释的那个地方可能曾经是个div,你试试获取第二个。 ...

!(data/attachment/forum/202302/25/205957xzq475xovagoe9m5.png)
!(data/attachment/forum/202302/25/210040umogr4blfxzo8r7r.png)
!(data/attachment/forum/202302/25/210213tmp8s8q0vmtr8v5m.png)
试了一下,这样终于能获取目标元素了,就是搞不懂直接写为什么拿不到。。。
页: [1] 2
查看完整版本: <!---->之间的元素如何获取