我正在使用Firefox浏览器的selenium。
ViewSource(CTRL+U)中显示的Html代码与我在Firefox中检查元素时看到的Html代码不同。
当我运行driver.getPageSource()
时,我只得到视图源代码(CTRL+U)。
是否有任何方法可以访问Inspect元素代码而不是查看源代码
我想你的问题在这里得到了回答。
View Source html是服务器发送的内容。我认为它是编译时html,或者DOM的初始状态。
Inspect Element html可以通过ajax响应或javascript进行更新,因此不一定相同。我认为它是运行时html,或者DOM的当前状态。
GetAttribute()方法查询当前DOM元素状态。您可以直接返回特定的html属性值
webElement.GetAttribute("class")
或者获取整个html字符串。
webElement.GetAttribute("innerHTML")
通过View Source显示的标记(即使用ctrl+U)与通过Inspector显示的标记之间存在一些基本差异,即使用ctrl+shift1+i2。
这两种方法都是两种不同的浏览器功能,允许用户查看网页的HTML。但是,主要区别在于ViewSource显示了从web服务器(应用程序服务器)传递到浏览器的HTML。其中,Inspect元素是一个开发工具,例如Chrome DevTools,用于在浏览器应用纠错后以及任何Javascript操作DOM后查看DOM树的状态。其中一些活动可能包括:
- 浏览器对HTML错误的更正
- 浏览器对HTML的规范化
- 用Javascript操作DOM
简而言之,使用ViewSource,您将看到Javascript,但不会看到HTML。HTML错误可能会在Inspect Elements工具中得到更正。例如:
-
在视图源中,您可以观察到:
<h1>The title</h2>
-
而通过检查元素,则会更正为:
<h1>The title</h1>
getPageSource()
始终返回通过查看源获得的标记。