我正试图从一个动态网站中读取一个元素,但我正面临一个奇怪的问题(至少对我的理解不足而言是如此)。
下面是来自Chrome开发工具的快照

我正在尝试读取高亮显示的行的innertText (请注意这是一个动态网站,因此"li id‘s“更改)。当我在document.querySelector("#\\31 60698c8-9d6c-492b-acf8-13b82467f873 > div > span.room-display-message-message")控制台中触发DevTools,同时高亮显示上面快照中的行时,会返回innerText,但是当我将所选内容移到树的更高的位置时,例如"iframe =“trollbox”,然后运行相同的脚本,它将返回"null“。
我是疯了还是这很正常,我应该采取另一种方法吗?
我之所以问这个问题,是因为我正在C#中开发一个工具,使用CEFSharp Chromium浏览器来读取该网站的内容,但这在目前来说并不重要。
发布于 2021-11-18 14:57:35
好吧,我花了几天时间,但我终于得到了我想要的。对于那些感兴趣的人来说,我的解决方案是:
"--disable-web-security",
函数foo(){“+ "var re = /^-a - document.getElementsByClassName('trollbox-container - Z!,‘?s/g;”+ "var messages = [];“+ "doc = script2’);”+ "ifrm = doc.getElementsByTagName('iframe');“+ "docInside = ifrm.contentDocument?docTag.getElementsByClassName('message-list');“:ifrm.contentDocument : ifrm.contentWindow.document;”+ "docTag = docInside.getElementsByClassName('content small');“+ "msgList =docTag+msgList_sender=msgList_sender+ "msgList_message = msgList.getElementsByClassName('room-display-message-message');”+ "for (var i= 0;i< msgList_sender.length;i++)“+”{“+”var发件人= msgList_senderi.innerText;“+”var message = msgList_messagei.innerText;“+”messages.push(发件人+ ':‘+ message);“+”}+返回消息;“+”}+ "foo();";
最后运行此代码
JavascriptResponse response = await browser1.EvaluateScriptAsync(script2);从我想要的特洛伊盒子中返回信息
https://stackoverflow.com/questions/70002013
复制相似问题