我是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?
答案 0 :(得分:6)
不,这是因为getPageSource
方法不会返回页面源,因为它会在浏览器中手动返回,但会返回DOM的文本表示形式。 Javadoc of getPageSource
更好地解释了这一点:
java.lang.String getPageSource()
获取上次加载的页面的来源。如果页面已被修改 加载后(例如,通过Javascript),无法保证 返回的文本是修改后的页面的文本。请咨询 用于确定是否的特定驱动程序的文档 返回的文本反映页面或文本的当前状态 最后由Web服务器发送。 返回的网页来源是 底层DOM的表示:不要指望它被格式化 或者以与从Web服务器发送的响应相同的方式进行转义。 把它想象成艺术家的印象。