javascript - 与嵌套 iFrame 中的元素交互,页面上存在但返回 null
问题描述
我正在编写一个脚本,它将为我下载一份报告。我的步骤之一是检查表格以获取我想要提取的报告的正确日期。我正在处理的网站很旧,它们是使用多个 iFrame 设置的(它们属于同一个域)。
根据我的研究,我想出了这一行来返回表格中某一行的 innerText
document.getElementById('iframe1').contentWindow.document.getElementById('iframe2').contentWindow.document.getElementsByClassName('status_table')[5].innerText
iFrame2 包含包含我要访问的所有信息的表。这条线有效,但只是有时。当我刷新页面,等待 10 秒并运行命令时,它返回 null。似乎在我扩展了 google chrome 中的所有元素之后,或者稍微弄乱了页面之后,它开始工作并返回正确的信息。
我不确定这里发生了什么,我访问元素是否错误?为什么在我单击页面上的内容或在开发控制台中展开元素后它开始工作?任何帮助,将不胜感激!
解决方案
出于某种原因,当我使用 getElementsByTagName 而不是 getElementByID 它一直有效!
document.getElementsByTagName('iframe')[2].contentWindow.document.getElementsByTagName('iframe')[0].contentWindow.document.getElementsByClassName('status_table')[5].innerText.toString();
推荐阅读
- ssms - SSMS 导入向导无法加载带有日期和时间的 CSV 日期列(以毫秒为单位)
- java - java swing - 如何在下一个使用的顶部绘制一个矩形?
- python-3.x - 如何使用 tkinter 按钮执行 python 文件?
- video-streaming - 如何在 webrtc 中提高质量并降低帧速率?
- c++ - 在 Windows 上挂起 printf
- python-3.x - 如何使用 python 3.8 获取 AWS S3 对象位置/URL?
- java - Eclipse找不到maven项目的主类
- mysql - SQL 查询执行很慢:需要优化
- php - Laravel 7.尝试方法返回false
- python - 匹配中间的单词