我的 Selenium 代码登录到一个网站,然后到达一个带有 iframe 中存在的按钮的页面。检查 chrome 中的元素并使用浏览器的控制台,我找到了 iframe:
iframe = document.getElementById("deputy-app-view1045")
然后我找到了该元素并能够单击它:
iframe.contentWindow.document.getElementById("csv_download").click()
在我的 python 代码中,我插入了:
browser.execute_script('document.getElementById("deputy-app-view1043").contentWindow.document.getElementById("csv_download").click()')
但是,错误是"TypeError: document.getElementById(...) is null".
:(
[解决方案] 想通了!只需在 js 脚本中添加一个“返回”!感谢大家!旧版:
browser.execute_script('document.getElementsByClassName("app-iframe dg-content-box margin-none Report Builder (BETA) ready")[0].contentWindow.document.getElementById("csv_download").href')
固定版本:
browser.execute_script('return document.getElementsByClassName("app-iframe dg-content-box margin-none Report Builder (BETA) ready")[0].contentWindow.document.getElementById("csv_download").href')