9

我正在使用 Firefox 浏览器在 selenium 中工作。

查看源代码 (CTRL+U) 中显示的 Html 代码与我在 Firefox 中检查元素时看到的 html 代码不同。

当我运行时,driver.getPageSource()我只获得查看源代码(CTRL + U)。

有什么方法可以访问Inspect 元素代码而不是查看源代码

4

2 回答 2

7

我想你的问题在这里得到了回答。

View Source html 是服务器发送的内容。我认为它是编译时 html,或 DOM 的初始状态。

Inspect Element html 可能已由 ajax 响应或 javascript 更新,因此不一定相同。我认为它是运行时 html,或 DOM 的当前状态。

GetAttribute() 方法查询当前 DOM 元素状态。您可以直接返回特定的html属性值

webElement.GetAttribute("class")

或获取整个 html 字符串。

webElement.GetAttribute("innerHTML")
于 2014-10-10T20:16:39.903 回答
0

通过View Source 显示的标记(即使用ctrl+U )和通过Inspector 显示的标记(即使用ctrl+ shift+I )之间存在一些根本区别。

这两种方法都是两种不同的浏览器功能,允许用户查看网页的 HTML。但是,主要区别在于View Source显示了从 Web 服务器(应用程序服务器)传递到浏览器的 HTML。其中,Inspect 元素是一个开发工具,例如Chrome DevTools ,用于在浏览器应用其错误纠正以及任何 Javascript 操作 DOM 之后查看DOM 树的状态。其中一些活动可能包括:

  • 浏览器的 HTML 错误更正
  • 浏览器的 HTML 规范化
  • 通过 Javascript 操作 DOM

简而言之,使用View Source您将观察到Javascript而不是HTML。HTML 错误可能会在检查元素工具中得到纠正。举个例子:

  • 查看源代码中,您可能会观察到:

    <h1>The title</h2>
    
  • 而通过检查元素将更正为:

    <h1>The title</h1>
    

getPageSource()总是返回通过View Source获得的标记。

于 2020-11-27T13:14:47.207 回答