【问题标题】:Getting screenshot using PhantomJS in C# [duplicate]在 C# 中使用 PhantomJS 获取屏幕截图 [重复]
【发布时间】:2014-08-28 04:48:31
【问题描述】:

我已将 PhantomJS 和 Selenium 添加到我的 C# 控制台应用程序中,并且我想在浏览器到达特定元素时对其进行屏幕截图。原因是由于某种原因,当我使用 ChromeDriver 时它工作正常,但是当我使用 PhantomJS 时,它在一些元素上失败了。

我想我需要介绍一下如何使用 phantomjs 在 C# 中截屏。我在互联网上环顾四周,看起来每个人都在使用 java 脚本来执行此操作。我遇到的问题是我不知道如何将 java 脚本集成到我的 C# 应用程序中,然后将其与 phantomJS 一起使用来获取屏幕截图。如果我能得到一些关于如何做到这一点的帮助,那就太好了。

TLDR: 我找到了http://code.tutsplus.com/tutorials/testing-javascript-with-phantomjs--net-28243,这就是我想做的,但我不知道如何在我的 c# 应用程序中使用 javascript。

【问题讨论】:

标签: c# javascript selenium selenium-webdriver phantomjs


【解决方案1】:

正如您所提到的,您已经有适用于 Chrome 的代码,最好将其发布,以显示您究竟在追求什么。

但是,这里是一般如何在 C# 中使用PhantomJSDriver 截屏的方法:

var driver = new PhantomJSDriver();
driver.Manage().Window.Maximize(); // optional
driver.Navigate().GoToUrl("http://stackoverflow.com");

driver.TakeScreenshot().SaveAsFile("screenshot.png", ImageFormat.Png);

driver.Quit();

请注意,您需要在项目中引用WebDriver.Support.dllSystem.Drawing

【讨论】:

  • 对于那些看这个的人来说,TakeScreenshot() 是 OpenQA.Selenium.Support.Extensions 中的一个扩展方法
  • 为了让它工作,我必须安装 PhantomJSSelenium WebDriverSelenium WebDriver Support Classes NuGet 包,并添加 OpenQA.Selenium.PhantomJS、OpenQA.Selenium.Support.Extensions , 和 System.Drawing.Imaging 命名空间到我的班级。之后它完美地工作了。 :-)
  • 你还需要包含命名空间,所以使用OpenQA.Selenium.Support.Extensions;
猜你喜欢
  • 2013-06-24
  • 1970-01-01
  • 2012-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多