2010-07-12 3 views
-1

여러 브라우저가있는 웹 페이지에서 스크린 샷을 가져 오려고합니다. 그냥 셀레늄 RC 실험,이 같은 코드 작성 :Selenium으로 스크린 샷 찍기 : WaitForPageToLoad가 오래 기다리지 않습니다.

var sel = new DefaultSelenium(server, 4444, target, url); 
sel.Start(); 
sel.Open(url); 
sel.WaitForPageToLoad("30000"); 
var imageString = sel.CaptureScreenshotToString(); 

이 기본적으로 작동을하지만, 페이지가 아직 표시에 대한 준비가되어 있지 않기 때문에 대부분의 경우 스크린 샷, 빈 브라우저 창입니다. WaitForPageToLoad 직후에 잠을 추가하면 빠른 브라우저가 느려지거나 느린 브라우저 (또는 부하가 부족한 경우)가 짧아 질 수 있습니다.

일반적인 해결 방법은 특정 요소의 존재를 기다리는 것입니다. 그러나 이것은 가능한 많은 브라우저 (레이아웃을 테스트하기 위해)로 로컬 웹 페이지의 스크린 샷을 얻는 간단한 일반 솔루션을 의미하며 특정 요소 이름이나 기타를 입력하지 않아도됩니다. 이 도구는 Selenium Server URL과 테스트하려는 URL을 입력하고 스크린 샷을 다시 가져 오는 간단한 도구입니다.

어떤 조언이 필요합니까?

+0

방금 ​​Selenium Server 2.0 Alpha 5를 사용해 보았는데 Opera, Internet Explorer 및 Chrome에서 작동하는 것으로 보입니다. Firefox에서는 안정적으로 작동하지 않았습니다. 한숨. – OregonGhost

답변

0

대기 시간이 다른 원격 페이지의 스크린 샷을 캡처하려면 Selenium-RC를 사용합니다. 이 경우 페이지 제목을 확인하고 time.sleep (n 초)을 사용하면 대개 나에게 도움이됩니다.

+0

나는 같은 문제에 직면하고있다. 아직 표시되지 않은 페이지를 확인하는 방법을 모른다. "Is Element present"를 사용하여 오브젝트에 대한 wait point를 넣을 수 있지만 셀레늄에 "window exist"명령이 없으므로 윈도우에 대해 어떻게 사용합니까? 내가 사용하고 있습니다 : selenium.SelectWindow 을 ("창 <1 페이지에있는 링크를 클릭> Nme "); 셀렌 .IsElementPresent ("object"); ' 두 번째 창이로드하는 데 시간이 걸리므로 코드가 실패합니다. C#으로 셀레늄 RC를 사용하고 있습니다. – Vas

0

브라우저 상태 표시 줄을 사용하여 해당 페이지가 완전히로드되었는지 여부를 확인할 수 있습니다. 나는 이것이 최선의 해결책이라고 생각한다.

관련 문제