在C#中使用PhantomJS获取屏幕截图

Dar*_*emi 8 javascript c# selenium phantomjs selenium-webdriver

我已经将PhantomJS和Selenium添加到我的C#控制台应用程序中,我希望在它到达特定元素时拍摄浏览器的屏幕截图.原因是因为出于某种原因,当我使用ChromeDriver时,它工作正常,但是当我使用PhantomJS时,它会在一些元素上失败.

我想我需要介绍如何使用phantomjs在C#中截取屏幕截图.我在互联网上环顾四周,看起来每个人都在用java脚本来做这件事.我遇到的问题是我不知道如何将java脚本集成到我的C#应用​​程序中,然后使用它与phantomJS来获取屏幕截图.如果我能得到一些如何做到这一点的帮助,那将是非常好的.

TLDR:我找到了http://code.tutsplus.com/tutorials/testing-javascript-with-phantomjs--net-28243这就是我想要做但我不知道怎么用我的javascript c#app.

Yi *_*eng 10

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

但是,以下是如何PhantomJSDriver在C#中使用截图:

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

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

driver.Quit();
Run Code Online (Sandbox Code Playgroud)

请注意,您需要引用WebDriver.Support.dll,并System.Drawing在您的项目.

  • 为了实现这一点,我必须安装[PhantomJS](https://www.nuget.org/packages/PhantomJS/),[Selenium WebDriver](https://www.nuget.org/packages/Selenium. WebDriver /)和[Selenium WebDriver支持类](https://www.nuget.org/packages/Selenium.Support/)NuGet包,并添加OpenQA.Selenium.PhantomJS,OpenQA.Selenium.Support.Extensions,以及System.Drawing.Imaging我的类的命名空间.之后它完美地运作了.:-) (8认同)
  • 对于那些看这个的人来说,TakeScreenshot()是OpenQA.Selenium.Support.Extensions中的扩展方法. (4认同)