2011-11-06 5 views
0

테스트중인 웹 응용 프로그램의 콘텐츠 영역 이미지를 캡처하려고합니다.콘텐츠 프레임/팝업 이미지 캡처

내 이미지에서 브라우저 메뉴를 제거해야 사용자가 다른 브라우저간에 콘텐츠 이미지를 완성 할 수 있습니다.

모든 PC 해상도 및 모든 브라우저에서 실행해야합니다. 또한

Selenium.CaptureScreenshot(filename), 
Selenium.CaptureEntirePageScreenshot(filename,kwargs) 

(0,0)임을 의미 브라우저 프레임에 화소 수 대하여, 수득 프레임 셀레늄의 크기를 계산하기 위해 시도 :

주어진 셀레늄 방법은 전체 윈도우를 캡처 할 수있는 방법을 제공한다 브라우저의 왼쪽 상단 점은 화면이 아닙니다.

.NET과 결합 된 셀렌을 사용하여 관련 콘텐츠 영역을 캡처하는 방법은 무엇입니까?

+0

첫 번째 셀레늄을 사용할 때 CaptureScreenshot이 제대로 작동하지 않았습니다. 셀레늄을 내가 원하는대로 작동하게하려면 셀레늄 webdriver를 사용해야했습니다. 다음 페이지에서 시도해보십시오. http://stackoverflow.com/questions/3422262/take-a-screenshot-with-selenium-webdriver – deadfish

답변

1

저는 Patterson이 CaptureEntirePageScreenshot 대신 CaptureEntirePageScreenshotToString을 사용하는 것에 동의합니다.

비교를 위해 두 이미지 또는 이미지 부분을 비교하는 작업을 수행하는 이미지 비교 유틸리티가 필요합니다 (예 : ISFW). Java 구현을 위해 ImageCompareUtil을 제공하십시오. 촬영 한 이미지의 부분과 기본 부분을 비교해야합니다. FF의 경우 이전 브라우저에 대한 일부 로직이 필요합니다. 캡쳐 된 이미지에는 전체 페이지 컨텐츠가 포함되지만 IE의 경우에는 보이는 컨텐츠 만 포함됩니다.

다른 해상도의 경우 스크린 샷을 캡처하기 전에 예상되는 해상도로 브라우저 창의 크기를 조정할 수 있습니다.

희망이 도움이 될 것입니다.

0

이미 답변을 알고있는 것 같습니다. Selenium.CaptureEntirePageScreenshotToString()을 사용합니다. 브라우저와 테스트 스크립트가 동일한 시스템에서 실행되지 않는 방식으로 테스트를 실행하기 때문에 Selenium.CaptureEntirePageScreenshot()과 같은 코드를 코어에서 사용하기 때문입니다. 유일한 차이점은 우리가 BASE64로 인코딩 된 PNG 이미지를 반환하기 때문에 디스크에서 가져올 필요가 없다는 것입니다.