2014-07-07 1 views
7

PhantomJS 및 Selenium을 C# 콘솔 앱에 추가했으며 특정 요소에 도달하면 브라우저의 스크린 샷을 캡처하려고합니다. 이유는 어떤 이유로 ChromeDriver를 사용할 때 제대로 작동하기 때문입니다. 그러나 PhantomJS를 사용하면 몇 가지 요소에서 실패합니다.C#의 PhantomJS를 사용하여 스크린 샷보기

나는 phantomjs를 사용하여 C#에서 스크린 샷을 찍는 방법에 대한 소개가 필요하다고 생각합니다. 나는 인터넷에서 둘러 보았고 모든 사람들이 자바 스크립트를 사용하고있는 것처럼 보였다. 내가 겪고있는 문제는 Java 스크립트를 C# 응용 프로그램에 통합 한 다음 phantomJS를 사용하여 스크린 샷을 얻는 방법을 모른다는 것입니다. 이 작업을 수행하는 방법에 대한 도움을 얻을 수 있다면 매우 유용 할 것입니다.

TLDR : 나는 http://code.tutsplus.com/tutorials/testing-javascript-with-phantomjs--net-28243을 찾았으며,이 것은 내가하고 싶은 것이지만, 나의 C# app에서 javascript를 사용하는 방법을 모른다.

+0

이 질문에 대한 답변이 이미 있습니다. http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver –

+1

빌어 먹을 남자 나는 내가 충분한 검색을했고 시간을 낭비하게되어서 미안하다고 생각했다. – Darthlemi

+0

또한 브라우저 창을 최대화해야 할 수도있다 . 나는 스크린이 기본적으로 최대화되지 않았 음을 phantomJS 드라이버를 통해 알아 차렸다. 이 질문의 두 번째 대답을 읽으십시오 : http://stackoverflow.com/questions/3189430/how-do-i-maximize-the-browser-window-in-selenium-webdriver-selenium-2-using-c –

답변

10

크롬에 대해 이미 작동하는 코드가 있다고 언급 했으므로 정확히 무엇을했는지 보여주기 위해 게시하는 것이 좋습니다. 당신이 당신의 프로젝트에 WebDriver.Support.dllSystem.Drawing를 참조 할 필요가

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

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

driver.Quit(); 

참고 :

그러나, 여기에 일반적으로 C#으로 PhantomJSDriver를 사용하여 화면을 캡처하는 방법입니다.

+4

이것을보고, TakeScreenshot()은 OpenQA.Selenium.Support.Extensions에있는 확장 메소드입니다. – gottlieb76

+8

이 기능을 사용하려면 [PhantomJS] (https://www.nuget.org/packages/PhantomJS)를 설치해야했습니다. /), [Selenium WebDriver] (https://www.nuget.org/packages/Selenium.WebDriver/) 및 [Selenium WebDriver Support Classes] (https://www.nuget.org/packages/Selenium.Support/) NuGet 패키지를 만들고 클래스에 OpenQA.Selenium.PhantomJS, OpenQA.Selenium.Support.Extensions 및 System.Drawing.Imaging 네임 스페이스를 추가합니다. 그 후 그것은 완벽하게 작동했습니다. :-) –

+0

'OpenQA.Selenium.Support.Extensions;'를 사용하여 네임 스페이스를 포함해야합니다. – Liam

관련 문제