【问题标题】:Running without launching browser window在不启动浏览器窗口的情况下运行
【发布时间】:2014-07-07 10:01:13
【问题描述】:

我今天才刚刚开始研究 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 以进行性能监控。

【问题讨论】:

  • thisthis,它们可能是相关的。
  • @qqbenq:我看过这些,但我认为不是。我相信我基本上是在 C# 中做第一个,我不确定如何将第二个翻译成我正在做的事情

标签: c# selenium-webdriver


【解决方案1】:

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

【讨论】:

  • Andrew - 但是我想通过 Windows 服务运行它,将结果记录到数据库中,通知我站点响应所需的时间
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-04
    • 1970-01-01
    • 2020-01-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-22
    • 2015-11-04
    • 1970-01-01
    相关资源
    最近更新 更多