Selenium中怎麽實現多個窗口之間的切換?
阿新 • • 發佈:2018-05-25
Selenium切換窗口 Selenium利用句柄切換窗口 Selenium窗口之間的切換 Selenium怎麽操作其他的窗口 Selenium 多窗口(多Tab)之前的切換
多窗口的切換的目的是為了讓selenium改變操作的窗口。在selenium中假如不切換窗口,一旦遇到一個鏈接跳轉到另外的窗口的時候,當前的資源句柄操作的依然是最開始的窗口,這樣一來,就給自動化人員帶來極大的不便。在多窗口的切換中,資源句柄會隨著切換窗口而切換操作的資源句柄。
在切換窗口的時候需要做的步驟與思路:獲取當前瀏覽器的所有資源句柄放到Set集合中,通過遍歷的方式獲取該資源句柄的Title與實際想切換的窗口的Title進行比較,如果相等,那麽在當前窗口停下。否則不斷遍歷。
import java.util.Set; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class alterWind { public static void main(String[] args) { // TODO Auto-generated method stub String chromePath=System.getProperty("user.dir") +"\\driver\\chromedriver.exe"; System.setProperty("webdriver.chrome.driver", chromePath); WebDriver driver=new ChromeDriver(); /* * 生成三個京東的窗口 */ driver.get("https://www.jd.com"); driver.findElement(By.linkText("秒殺")).click(); driver.findElement(By.linkText("優惠券")).click(); Set<String> handles=driver.getWindowHandles(); /* * 遍歷handles,Set集合 */ for(String wind:handles){ /* * 根據集合中的資源句柄不斷遍歷各個窗口並獲取各個窗口的Title是否包含"京東秒殺-正品保證、天天低價、限時限量") * 包含的話就break退出循環,否則直至遍歷完集合 */ if(driver.switchTo().window(wind).getTitle().contains("京東秒殺-正品保證、天天低價、限時限量")){ break; } } } }
Selenium中怎麽實現多個窗口之間的切換?