2010-05-04 6 views
2

나는 셀레늄을 사용하는 프로젝트에서 일하고 있으며 전체 웹 페이지 높이 크로스 브라우저 및 크로스 플랫폼을 얻으려고 노력하고 싶습니다. IE8은 언제나처럼 완고 해지고 있습니다. 어떻게 해결할 지에 대한 아이디어가있는 사람이 있습니까?Selenium을 통해 scrollheight 크로스 브라우저 가져 오기

문제 : 예를 들어 페이지를 아래로 스크롤하면 500px이고 페이지 하단까지 계속하면 마지막 스크롤은 500px 미만이됩니다. 나는이 마지막 스크롤이 얼마나 많은지 알 필요가있다. 해결의

두 가지 방법 : 1) IE8 제외한 모든 작업 (때마다 스크롤되었음을 오프셋 찾기) 2) jQuery의 높이() 함수는이 작업을 수행 내가 알고있는 웹 페이지

의 전체 높이를 찾기 하지만 난 셀렌 RC 에서이 기능을 사용할 수 없습니다. 셀레늄 또는 다른 솔루션을 통해 JQuery 함수를 호출하는 방법을 알고 있다면 알려주십시오!

건배, 헨리

답변

2

나는 내 자신의 문제에 대한 해결책을 발견했습니다. Selenium으로 테스트를 실행하면 두 개의 창을 시작합니다. 1) 모든 명령을 실행하는 Selenium 창 2) 웹 사이트를 테스트하는 브라우저 창. 자바 스크립트 기능을 통해 윈도우 2에 대한 정보를 얻을 때

, 당신은 다음을 수행해야합니다) ( selenium.browserbot.getCurrentWindow을

셀레늄을 통해 브라우저 창 크로스 브라우저의 전체 높이를 얻으려면, 다음과 같은 스크립트가 필요합니다 :

function getPageHeight(){ 
    $scrOfY = 0; 
    $test = $this->getEval("typeof(selenium.browserbot.getCurrentWindow().pageYOffset)"); 
    if(strcmp($test,"number") == 0) { 
     //Netscape compliant 
     $scrOfY = (int)$this->getEval("selenium.browserbot.getCurrentWindow().pageYOffset;"); 
     //scrOfX = window.pageXOffset; 
    } else if((bool)$this->getEval("selenium.browserbot.getCurrentWindow().document.body != null") && (bool)$this->getEval("selenium.browserbot.getCurrentWindow().document.body.scrollTop != null")) { 
     //DOM compliant 
     $scrOfY = (int)$this->getEval("selenium.browserbot.getCurrentWindow().document.body.scrollTop;"); 
     //scrOfX = document.body.scrollLeft; 
    } else if((bool)$this->getEval("selenium.browserbot.getCurrentWindow().document.documentElement != null") && (bool)$this->getEval("selenium.browserbot.getCurrentWindow().document.documentElement.scrollTop != null")) { 
     //IE6 standards compliant mode 
     $scrOfY = (int)$this->getEval("selenium.browserbot.getCurrentWindow().document.documentElement.scrollTop;"); 
     //scrOfX = document.documentElement.scrollLeft; 
    } 
    if(!$scrOfY || $scrOfY <= 0) 
     $scrOfY = $this->getEval("selenium.browserbot.getCurrentWindow().document.body.offsetHeight"); 

    return $scrOfY; 
} 
+0

hummm ... 나는이 고마움을 시험 할 것입니다. 질문과 대답 –

+0

질문에 대한 답변입니다. – StefanE

관련 문제