如何在Selenium WebDriver中获取Inspect Element代码

时间:2014-10-10 19:19:09

标签: selenium selenium-webdriver

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

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

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

是否有办法访问 Inspect元素代码而不是查看源代码

2 个答案:

答案 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之后。其中一些活动可能包括:

  • 浏览器纠正HTML错误
  • 浏览器对HTML的规范化
  • 通过Java进行DOM操作

简而言之,使用查看源代码,您将观察到 Javascript ,但没有观察到 HTML 。 HTML错误可以在检查元素工具中得到纠正。例如:

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

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

    <h1>The title</h1>
    

getPageSource() 始终返回通过查看源代码获得的标记。