无需启动浏览器窗口即可运行

时间:2014-07-07 10:01:13

标签: c# selenium-webdriver

我今天刚刚开始研究Selenium,所以如果我错过了一些明显的东西,请耐心等待。我正在尝试构建一个小型Windows服务,可以监控一些网站,检查它们是否正常运行并检查它们的性能(例如我们注意到CDN最近运行缓慢)。到目前为止,我已经包含了我认为正确的NuGet依赖项:

  • Selenium WebDriver
  • Selenium WebDrive支持类
  • Selenium.WebDriver.ChromeDriver

然后是一个非常简单的代码测试部分:

using (var driver = new ChromeDriver())
{
   driver.Navigate().GoToUrl("http://www.google.com");
}

这很好用,我可以在多个线程上运行它,在它们周围包裹秒表等,但我注意到的一个问题是这实际上启动了一个浏览器对话框 - 而我真的想要在'无头'中运行或'无窗'模式。我不能SimpleBrowserDriver但是这并没有提出额外的请求来获取所有相关的CSS&用于性能监控的JavaScript。

2 个答案:

答案 0 :(得分:0)

听起来你正在寻找像phantomjs这样的东西,或者你可以尝试通过BrowserStack之类的服务运行测试。 Phantomjs是一个无头浏览器,您可以从脚本启动它,并为您提供您正在寻找的背景浏览。 BrowserStack是一种可以通过其路由测试的服务之一;他们在后台处理浏览器,同时仍然提供查看屏幕截图和运行日志的功能。 BrowserStack提供免费试用,但后来是付费服务,因此如果符合您的目标,幻影可能是更好的选择。

答案 1 :(得分:0)

HTMLUNIT或PhantomJS将是您理想的解决方案,我们有一个类似的无头框架构建基于CMS的WebApps。 但是,PhantomJS和HTMLUnits不处理本机浏览器警报,并且依赖于测试将失败。 BrowserStack是一个很好的解决方案,但是在编写测​​试脚本时需要考虑很多,例如更明确的等待,因为他们的机器可能会很痛苦,尤其是在重新发送Java脚本时,这往往会减慢测试速度并且有时会失败。

我们设计了所有相关的日志,截图和响应时间来加载要保存的页面并发送到本地访问,我相信您也可以轻松地存储到数据库中。