如何使用SeleniumWebDriver获取InspectElement代码



我正在使用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()始终返回通过查看源获得的标记。

相关内容

  • 没有找到相关文章

最新更新