使用selenium webdriver C#获取DOCTYPE

时间:2012-05-22 09:19:13

标签: c# selenium webdriver doctype w3c-validation

我使用Selenium webdriver进行UI自动化。以下是我的示例代码

IWebDriver driver = new OpenQA.Selenium.IE.InternetExplorerDriver();
    string url ="http://stackoverflow.com";
    driver.Navigate().GoToUrl(url);
    string pagesource = driver.PageSource;

pagesource变量没有doctype。我需要知道W3C validation的DOCTYPE。有没有办法通过selenium获取HTML源的DOCTYPE?

This thread表示无法通过selenium获取html源的Doctype,而是可以从.net执行HTTP请求并获取DOCTYPE。我不想为获取DOCTYPE做单独的HTTP请求。

1 个答案:

答案 0 :(得分:4)

使用FirefoxDriver代替InternetExplorerDriver可以获得DOCTYPE。不幸的是,这不会解决您的问题 - 您使用driver.PageSource获得的源已经被浏览器预处理,因此尝试验证该代码将无法提供可靠的结果。

不幸的是,没有简单的解决方案。

如果您的页面没有受密码保护,您可以使用“uri验证”方法。

否则您需要获取页面源。我知道两种方法(我在我的项目中实现了)。一种是使用代理。如果您使用的是C#,请查看FiddlerCore。其他方式是使用javascript和XMLHttpRequest发出另一个请求。您可以find example here(在页面中搜索XMLHttpRequest)。