c# - 使用 selenium webdriver C# 获取 DOCTYPE

标签 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 变量没有文档类型。我需要知道 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/

相关文章:

c# - 为什么字典是 "not ordered"?

python - Selenium python : Can not connect to the Service %s"% self. 路径

python : no module named selenium

java - 在 Selenium 2/Java 中等待条件的最简洁方法?

c# - MVC View 中 Foreach 中的 Foreach

c# - 如何跳过里面有lambda代码的函数?

java - 从行项目列表中提取 href 值

javascript - 为什么我需要一个 Selenium Server 而不是直接调用 WebDriver 实现

c# - 简单的从 gridview 在 asp.net web 应用程序中选择一行

c# - 在测试失败时运行附加清理功能(当断言失败时)