9
我使用Firefox驅動程序打開兩個URL。每當我調用驅動程序,新的Firefox窗口打開。我必須在這兩個窗口之間切換。我怎樣才能做到這一點?使用Selenium WebDriver在兩個瀏覽器窗口之間切換
我使用Firefox驅動程序打開兩個URL。每當我調用驅動程序,新的Firefox窗口打開。我必須在這兩個窗口之間切換。我怎樣才能做到這一點?使用Selenium WebDriver在兩個瀏覽器窗口之間切換
你可以用下面的代碼基於窗口的標題
private void handleMultipleWindows(String windowTitle) {
Set<String> windows = driver.getWindowHandles();
for (String window : windows) {
driver.switchTo().window(window);
if (driver.getTitle().contains(windowTitle)) {
return;
}
}
}
與之相似,你可以使用URL或其他一些標準來切換窗口的窗口之間進行切換。
我也添加了切換回mainWindowHandle的範圍。
如果您正在處理具有不同標題的窗口,則可以嘗試使用以下功能。
private String mainWindowsHandle; // Stores current window handle
public static boolean swithToWindow(WebDriver driver,String title){
mainWindowsHandle = driver.getWindowHandle();
Set<String> handles = driver.getWindowHandles(); // Gets all the available windows
for(String handle : handles)
{
driver.switchTo().window(handle); // switching back to each window in loop
if(driver.getTitle().equals(title)) // Compare title and if title matches stop loop and return true
return true; // We switched to window, so stop the loop and come out of funcation with positive response
}
driver.switchTo().window(mainWindowsHandle); // Switch back to original window handle
return false; // Return false as failed to find window with given title.
}
謝謝,它爲我工作。 :) – 2012-12-18 20:14:44
我也是!這是非常好的方法 – sircapsalot 2013-09-12 19:43:54