在web?應(yīng)用中經(jīng)常會(huì)遇到frame?嵌套頁(yè)面的應(yīng)用,頁(yè)WebDriver?每次只能在一個(gè)頁(yè)面上識(shí)別元素,對(duì)于frame?嵌套內(nèi)的頁(yè)面上的元素,直接定位是定位是定位不到的。這個(gè)時(shí)候就需要通過(guò)driver.switchTo().fram()
方法將當(dāng)前定位的主體切換了frame?里。switchTo().frame()默認(rèn)可以直接取表單的id ,name屬性以及和index來(lái)進(jìn)行切換;
如:
//id?=?"iframeId"
driver.switchTo().frame("iframeId");
//name="iframeName"
driver.switchTo().frame("iframeName");
如果iframe?沒(méi)有可用的id?和name?可以通過(guò)下面的方式進(jìn)行定位:
//先通過(guò)xpth?定位到iframe
WebElement iframe =?driver.findElement(By.xpath("http://iframe[@type='value']"));
driver.switchTo().frame(iframe?);
//通過(guò)iframe的下標(biāo)去定位,從0開(kāi)始代表第1個(gè)iframe
driver.switchTo().frame(0);
//退回上一級(jí)表單
driver.switchTo().defaultContent();
driver.switchTo().parentFrame();