描述:selenium webdriver學習--打開新窗口,並判斷新窗口是否與目標窗口一致,若一致則切換到該窗口並獲取標題
跳出if判斷,獲取父級標題,並關閉
HTML標簽不太明顯時,可以用路徑表示:
driver.findElement(By.xpath("/html/body/div/div[4]/div[6]/p[2]/a"));

import java.util.Set; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.chrome.ChromeDriver; import org.openqa.selenium.phantomjs.PhantomJSDriver; import org.openqa.selenium.support.ui.ExpectedConditions; import org.openqa.selenium.support.ui.Wait; import org.openqa.selenium.support.ui.WebDriverWait; public class YsfTest_20180725{ public static void main(String[] args) throws InterruptedException{ WebElement search = null; System.setProperty("webdriver.chrome.driver","C:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe"); WebDriver driver = new ChromeDriver(); driver.get("http://www.w3school.com.cn/html/html_forms.asp"); //獲得父級窗口的id String parentId = driver.getWindowHandle(); //獲取父級窗口的標題名 String parentTitle = driver.getTitle(); //找到“親自試一試”按鈕 search = driver.findElement(By.xpath("/html/body/div/div[4]/div[6]/p[2]/a")); //點擊“親自試一試”按鈕 search.click(); //獲取父級窗口id和子級窗口id,放在chirldids數組里 Set<String> childids = driver.getWindowHandles(); // System.out.println("list:"+chirldids); for(String s:childids){ if(driver.switchTo().window(s).getTitle().contains("W3School在線測試工具 V2")){ driver.switchTo().window(s); String titleChild = driver.getTitle(); System.out.println("name:"+titleChild); Thread.sleep(5000); driver.close(); break; } } driver.switchTo().window(parentId); String titleParent = driver.getTitle(); System.out.println("name:"+titleParent); driver.close(); } }
重點實現了切換窗口的功能。
