WEB自動化(4)----頁面跳轉

1.原窗口打開新頁面

        這種方式WindowHandle值不會有改變,可以直接繼續操作

2.新窗口打開新頁面

        //記錄現在這個窗口的值,儘量在未打開前記錄下來

        String oldWin = driver.getWindowHandle();

        //獲取當前所有窗口的值,並使用新的值跳轉到新窗口去

        Set<String> newWin = driver.getWindowHandles();
for(String str : newWin )
{
if(!str.equals(oldWin))
{
driver.switchTo().window(str);
}
}

3.同一頁面不同frame

        //獲取到frame節點元素,然後使用driver.switchTo().frame(ele);

        WebElement ele = driver.findElement(By.id("iframe"));
driver.switchTo().frame(ele);

        此處要注意:假設有個頁面結構如下

<body><iframe id='parent'><iframe id='child'></iframe></iframe></body>

(1)我們開始在<body>裏面操作,現在要轉移到parent裏面。代碼如下:

WebElement ele = driver.findElement(By.id("parent"));
driver.switchTo().frame(ele);

(2)現在要回到<body>裏面

driver.switchTo().defaultContent();

(3)要跳轉到child裏面

WebElement ele = driver.findElement(By.id("child"));
driver.switchTo().frame(ele);

<span style="color:#ff0000;"><span style="font-size: 24px;"><strong>    </strong></span></span><span style="font-size:14px;">@Test
	public void windowsSwitchT() {
		driver.get("http://www.baidu.com");
		String win = driver.getWindowHandle();
		WebElement ele = driver.findElement(By.id("kw"));
		ele.sendKeys("百度");
		WebElement ele1 = driver.findElement(By.id("su"));
		ele1.click();
		//新頁面,但是沒有開新窗口的,可以直接繼續操作
		WebElement ele2 = driver.findElement(By.className("favurl"));
		ele2.click();
		//如果打開了新窗口,那麼要操作新窗口的話,就必須先跳轉到新窗口,再繼續操作
		Set<String> win1 = driver.getWindowHandles();
		for(String str : win1)
		{
			if(!str.equals(win))
			{
			driver.switchTo().window(str);
			}
		}
		WebElement ele3 = driver.findElement(By.id("kw"));
		ele3.sendKeys("看看跳轉到哪裏去了");
	}
	@Test
	public void frameSwitchT() {
		driver.get("http://layer.layui.com/");
		WebElement ele3 = driver.findElement(By.id("parentIframe"));
		ele3.click();
		//frame跳轉
		WebElement ele4 = driver.findElement(By.id("layui-layer-iframe1"));
	    driver.switchTo().frame(ele4);
		WebElement ele5 = driver.findElement(By.id("new"));
		ele5.click();
		driver.switchTo().defaultContent();
	}</span>



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章