我已經找到了解決我自己的問題。 當您使用Selenium運行測試時,它會啓動兩個窗口: 1)執行所有命令的Selenium窗口 2)用於測試網站的瀏覽器窗口。
當您嘗試通過JavaScript函數來獲取有關窗口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;
}
哼哼......我會試試這個謝謝。對於Q和A – 2010-05-05 19:02:53
對自己的問題很好的回答! – StefanE 2010-05-20 12:52:10