DrissionPage执行js返回元素不存在

为什么在浏览器执行就可以正常获取container 但是用DrissionPage执行js获取的container 就为空列表

DrissionPage执行js返回元素不存在但是在浏览器控制台执行是正常存在的

区别就是用js返回列表需要用匿名函数包裹

(function() {
  const container = document.querySelector('#messageContent');
  if (!container) {
        return []; // 容器不存在时返回空数组,而非None
      }
  // 递归获取所有子节点的文本,保留结构
  function getAllTextWithStructure(element) {
    let result = [];
    for (let child of element.childNodes) {
      if (child.nodeType === 3 && child.textContent.trim()) { // 文本节点
        result.push(child.textContent.trim());
      } else if (child.nodeType === 1) { // 元素节点
        result.push(getAllTextWithStructure(child));
      }
    }
    return result.flat().filter(Boolean); // 扁平化并过滤空值
  }
  
  // 容错:容器不存在时返回空数组
  const textList = container ? getAllTextWithStructure(container) : [];
  return textList; // 函数内部的return是合法的
})(); // 立即执行这个匿名函数
为什么在浏览器执行就可以正常获取container 但是用DrissionPage执行js获取的container 就为空列表

舍弃匿名函数直接获取innerText或textContent后直接处理

JavaScript运行错误。
JS: function(){return document.getElementById('messageContent').innerText.split(["
"]).map(item => item.trim()).filter(Boolean); || document.getElementById('messageContent').textContent.split(["
"]).map(item => item.trim()).filter(Boolean);;}
详情: {'exceptionId': 3, 'text': 'Uncaught', 'lineNumber': 0, 'columnNumber': 78, 'scriptId': '574', 'exception': {'type': 'object', 'subtype': 'error', 'className': 'SyntaxError', 'description': 'SyntaxError: Invalid or unexpected token', 'objectId': '{"injectedScriptId":1,"id":13}'}}
版本: 4.1.1.2

注意:在 Python 字符串中写正则 \r?\n,需要双反斜杠:/\\r?\\n/