我使用Firefox浏览器在selenium工作。
View Source(CTRL + U)中显示的Html代码与我在检查Firefox中的元素时看到的html代码不同。
当我运行driver.getPageSource()
时,我只获得了查看源代码(CTRL + U)代码。
是否有办法访问 Inspect元素代码而不是查看源代码?
答案 0 :(得分:6)
我认为您的问题已经回答here。
View Source html是服务器发送的内容。我认为它是编译时html,或DOM的初始状态。
Inspect Element html可能已被ajax响应或javascript更新,因此不一定相同。我认为它是运行时html,或DOM的当前状态。
GetAttribute()方法查询当前的DOM元素状态。您可以直接返回特定的html属性值
webElement.GetAttribute("class")
或获取整个html字符串。
webElement.GetAttribute("innerHTML")
答案 1 :(得分:0)
通过查看源显示的标记(即使用 ctrl + U )和通过 Inspector显示的标记之间存在一些根本区别。即使用 ctrl + shift + I 。
这两种方法都是两种不同的浏览器功能,允许用户查看网页的HTML。但是,主要区别是查看源文件显示从Web服务器(应用程序服务器)传递到浏览器的HTML。另外,检查元素是开发人员工具,例如Chrome DevTools来查看DOM Tree的状态,这是在浏览器应用了纠错功能之后以及在任何Javascript操作了DOM之后。其中一些活动可能包括:
简而言之,使用查看源代码,您将观察到 Javascript ,但没有观察到 HTML 。 HTML错误可以在检查元素工具中得到纠正。例如:
在查看源代码中,您可能会观察到:
<h1>The title</h2>
而通过检查元素可以更正为:
<h1>The title</h1>
getPageSource()
始终返回通过查看源代码获得的标记。