你需要做的就是打開一個新的標籤,並保存它的第一件事就是處理名稱。最好使用javascript而不使用鍵(ctrl + t),因爲鍵並不總是在自動化服務器上可用。例如:
public static String openNewTab(String url) {
executeJavaScript("window.parent = window.open('parent');");
ArrayList<String> tabs = new ArrayList<String>(bot.driver.getWindowHandles());
String handleName = tabs.get(1);
bot.driver.switchTo().window(handleName);
System.setProperty("current.window.handle", handleName);
bot.driver.get(url);
return handleName;
}
您需要做的第二件事是切換標籤。僅通過切換窗口句柄來執行操作,並不總是有效,因爲您要處理的選項卡不會始終處於焦點狀態,Selenium會不時失敗。 正如我所說,這是一個有點問題使用按鍵和JavaScript真的不支持切換標籤,所以我用警報切換標籤和它的工作就像一個魅力:
public static void switchTab(int tabNumber, String handleName) {
driver.switchTo().window(handleName);
System.setProperty("current.window.handle", handleName);
if (tabNumber==1)
executeJavaScript("alert(\"alert\");");
else
executeJavaScript("parent.alert(\"alert\");");
bot.wait(1000);
driver.switchTo().alert().accept();
}
我覺得2個選項卡一樣在大多數情況下,2個窗口 –