Selenium远程控制具有“ get_html_source”方法,该方法以字符串形式返回当前页面的源。
AFAIK,此方法在Firefox和Safari中均适用。但是,当在Internet Explorer中调用它时,它将返回不正确的源。
有谁知道这是Selenium还是Internet Explorer的错误,是否有修复程序?
最佳答案
我99%确信get_html_source使用浏览器的innerHTML属性。 InnerHTML返回浏览器对文档的内部表示,并且在平台之间始终不一致且“奇特”。
您可以通过将以下onload属性临时添加到页面的body标签来进行测试。
onload="var oArea = document.createElement('textarea');oArea.rows=80;oArea.cols=80;oArea.value = document.getElementsByTagName('html')[0].innerHTML;document.getElementsByTagName('body')[0].appendChild(oArea)"
这会将带有文档的innerHTML的文本区域添加到页面底部。如果看到相同的“不正确” HTML源,则说明IE是罪魁祸首。
如果您要使用有效的标记,则可能的解决方法是通过HTML Tidy或其他一些清除程序运行源。我不知道有什么可以在浏览器之间提供一致的呈现。