我使用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请求。
答案 0 :(得分:4)
使用FirefoxDriver代替InternetExplorerDriver可以获得DOCTYPE。不幸的是,这不会解决您的问题 - 您使用driver.PageSource获得的源已经被浏览器预处理,因此尝试验证该代码将无法提供可靠的结果。
不幸的是,没有简单的解决方案。
如果您的页面没有受密码保护,您可以使用“uri验证”方法。
否则您需要获取页面源。我知道两种方法(我在我的项目中实现了)。一种是使用代理。如果您使用的是C#,请查看FiddlerCore。其他方式是使用javascript和XMLHttpRequest发出另一个请求。您可以find example here(在页面中搜索XMLHttpRequest)。