在RFT中如何等待瀏覽器處於Ready狀態?
在RFT中,如何等待一段時間,讓瀏覽器啟動並載入頁面處於Ready狀態?下面的程式碼可以實現:
closeIEBrowsers();
startBrowser("http://blog.csdn.net/testing_is_believing");
if(waitForReady())
System.out.println("Ready!");
else
System.out.println("NOT Ready!");
關閉所有IE瀏覽器的方法closeIEBrowsers,參見:
http://blog.csdn.net/Testing_is_believing/archive/2010/01/22/5233918.aspx
waitForReady方法如下所示:
public static boolean waitForReady() {
long maxWaitTimeMillis = 60000;
//get start time so can determine timeout
long startTime = System.currentTimeMillis();
TestObject to = findBrowser();
while ((to ==null) && ((System.currentTimeMillis() - startTime) < maxWaitTimeMillis))
{
sleep(10);
to = findBrowser();
}
if (to == null)
return false;
//get start time again for next timeout
startTime = System.currentTimeMillis();
while (!isReady(to) && (System.currentTimeMillis() - startTime) < maxWaitTimeMillis)
sleep(2);
if (isReady(to)) {
RationalTestScript.unregister(new Object[]{to});
return true;
}
else {
RationalTestScript.unregister(new Object[]{to});
return false;
}
}
通過獲取測試物件的readyState屬性值來判斷頁面是否載入完成:
public static boolean isReady(TestObject to) {
return Integer.parseInt(to.getProperty(".readyState").toString()) == 4;
}
查詢瀏覽器例項的方法:
public static BrowserTestObject findBrowser() {
DomainTestObject domains[] = getDomains();
for (int i = 0; i < domains.length; ++i) {
try {
if (domains[i].getName().equals("Html")) {
//We found an Html domain.
TestObject[] topObjects = domains[i].getTopObjects();
if (topObjects != null) {
try {
for (int j = 0; j < topObjects.length; ++j) {
if (topObjects[j] instanceof BrowserTestObject)
{
return (BrowserTestObject)topObjects[j];
}
}
} catch (Exception e) {
System.out.println("Exception in findBrowser: " + e);
e.printStackTrace();
}
}
}
} catch (com.rational.test.ft.TargetGoneException e) {
//noop - continue if target has since disappeared
}
}
//if we get here, we didn't find a browser
return null;
}
相關文章
- JS在瀏覽器中判斷當前網路狀態JS瀏覽器
- vuex狀態管理與瀏覽器快取Vue瀏覽器快取
- 在瀏覽器中啟用kali-desktop——基於docker瀏覽器Docker
- 【譯】瀏覽器如何工作:在現代web瀏覽器場景的之下瀏覽器Web
- Rtsp轉Flv在瀏覽器中播放瀏覽器
- 在瀏覽器中執行vscode -DEV瀏覽器VSCodedev
- emoji在瀏覽器中是如何傳遞給伺服器的瀏覽器伺服器
- 如何處理瀏覽器的斷網情況?瀏覽器
- 關於瀏覽器相容瀏覽器
- 瀏覽器全屏外掛screenfull.js與全屏狀態監聽瀏覽器JS
- daedalOS:基於WebAssembly在瀏覽器中實現桌面作業系統Web瀏覽器作業系統
- [譯] 2019版 web 瀏覽器現狀Web瀏覽器
- js基礎–如何判斷瀏覽器標籤頁是隱藏或者顯示狀態JS瀏覽器
- JS在瀏覽器中的執行機制JS瀏覽器
- 在 Windows 11 中解除安裝 Edge 瀏覽器Windows瀏覽器
- JavaScript在瀏覽器環境中的非同步JavaScript瀏覽器非同步
- Ooui:在瀏覽器中執行.NET應用UI瀏覽器
- 基於CefSharp開發瀏覽器(八)瀏覽器收藏夾欄瀏覽器
- 在瀏覽器裡使用SAPGUI瀏覽器GUI
- 如何在瀏覽器中執行 VS Code?瀏覽器
- KVM虛擬機器處於暫停狀態怎麼處理虛擬機
- win10瀏覽器字型模糊如何處理_win10瀏覽器字型模糊發抖如何修復Win10瀏覽器
- puppeteer中如何複用啟動中的瀏覽器瀏覽器
- 原生ES-Module在瀏覽器中的嘗試瀏覽器
- js 在瀏覽器中的event loop事件佇列JS瀏覽器OOP事件佇列
- 如何直觀的在JavaScript中管理狀態JavaScript
- 如何在Linux中安裝Microsoft Edge瀏覽器LinuxROS瀏覽器
- 如何在瀏覽器中測試JavaScript程式碼?瀏覽器JavaScript
- 【瀏覽器】(內附面試題)瀏覽器中堆疊記憶體的底層處理機制瀏覽器面試題記憶體
- 【瀏覽器】瀏覽器基本工作原理瀏覽器
- 360瀏覽器在電腦中開啟網頁無痕瀏覽的設定方法瀏覽器網頁
- VS Code在瀏覽器預覽HTML頁面瀏覽器HTML
- SESSION處於KILLED狀態下如何找出對應的程式Session
- win10沒有ie瀏覽器怎麼處理_window10找不到ie瀏覽器如何解決Win10瀏覽器
- 瀏覽器/nodeJS中的EventLoop瀏覽器NodeJSOOP
- 瀏覽器中的Event Loop瀏覽器OOP
- 【譯】Go和WebAssembly:在瀏覽器中執行Go程式GoWeb瀏覽器
- win10中的瀏覽器開啟網速特別慢是怎麼回事_win10瀏覽器開啟慢如何處理Win10瀏覽器
- 如何用海外HTTP代理在電腦瀏覽器中設定ip地址和埠?HTTP瀏覽器