我正在使用 Selenium webdriver 来实现 UI 自动化。下面是我的示例代码
IWebDriver driver = new OpenQA.Selenium.IE.InternetExplorerDriver();
string url ="http://stackoverflow.com";
driver.Navigate().GoToUrl(url);
string pagesource = driver.PageSource;
pagesource 变量没有文档类型。我需要知道 W3C validation 的 DOCTYPE 。有没有办法通过selenium获取html源的DOCTYPE?
This thread显示无法通过 selenium 获取 html 源的 Doctype,相反,您可以从 .net 发出 HTTP 请求并获取 DOCTYPE。我不想为获取 DOCTYPE 执行单独的 HTTP 请求。
最佳答案
使用 FirefoxDriver 而不是 InternetExplorerDriver 将为您获取 DOCTYPE。不幸的是,这并不能解决您的问题 - 您通过 driver.PageSource 获得的源已经由浏览器进行了预处理,因此尝试验证该代码不会给出可靠的结果。
不幸的是,没有简单的解决方案。
如果您的页面没有密码保护,您可以使用“通过 uri 验证”方法。
否则您需要获取页面源代码。我知道两种方法(我在我的项目中实现了两种方法)。一种是使用代理。如果您使用 C#,请查看 FiddlerCore 。其他方法是使用 javascript 和 XMLHttpRequest 发出另一个请求。您可以find example here (在页面中搜索 XMLHttpRequest)。
关于c# - 使用 selenium webdriver C# 获取 DOCTYPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10699148/