InternetExplorerDriver getPageSource()返回的字符串不同于FirefoxDriver

时间:2013-07-18 21:18:20

标签: selenium webdriver

我是Selenium的新手,并想知道是否有人能指出我正确的方向。

我正在尝试获取页面的页面源,但我注意到IE驱动程序返回了一些内容 与FirefoxDriver不同。

此外,InternetExplorerDriver.getPageSource()返回的字符串与我在IE上单击视图页面源时看到的字符串不同。

我正在运行IE 8和Firefox 22.

此页面上的示例:http://stackoverflow.com/questions/16455217/webdriver-save-the-location-of-the-id-in-the-page

当我调用getPageSource()时,IE返回了类似的内容。

"<HTML><HEAD><TITLE>selenium - Webdriver / Save the location of the ID in the page - Stack Overflow</TITLE><LINK rel="shortcut icon" href="https://cdn.sstatic.net/stackoverflow/img/favicon.ico"><LINK rel="apple-touch-icon image_src" href="https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png">

虽然Firefox归还了这个。

"<!DOCTYPE html>

<title>selenium - Webdriver / Save the location of the ID in the page - Stack Overflow</title>
<link href="https://cdn.sstatic.net/stackoverflow/img/favicon.ico" rel="shortcut icon" />
<link href="https://cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png" rel="apple-touch-icon image_src" />

IEDriver是否有办法以与FirefoxDriver相同的方式返回pageSource?

1 个答案:

答案 0 :(得分:6)

不,这是因为getPageSource方法不会返回页面源,因为它会在浏览器中手动返回,但会返回DOM的文本表示形式。 Javadoc of getPageSource更好地解释了这一点:

  

java.lang.String getPageSource()

     

获取上次加载的页面的来源。如果页面已被修改   加载后(例如,通过Javascript),无法保证   返回的文本是修改后的页面的文本。请咨询   用于确定是否的特定驱动程序的文档   返回的文本反映页面或文本的当前状态   最后由Web服务器发送。 返回的网页来源是   底层DOM的表示:不要指望它被格式化   或者以与从Web服务器发送的响应相同的方式进行转义。   把它想象成艺术家的印象。