三、iFrame的处理

在元素定位过程中难免需要进行Frame或者iFrame之间的切换,否则会导致元素定位失败,frame之间的切换有2种方法:

1.  如果是同一个div或同一级,直接使用Switchto()方法

driver.switchTo().frame("tab_ifm_3");

2.       如果方法1不能直接切换过去,需要一步一步的进行弄,可参考以下例子:

从一个iframe切换至另一个iframe,首先使用switchTo().defaultContent(),然后定位div,然后再切换至iframe

driver.switchTo().defaultContent();

driver.findElement(By.id("_my97DP")); 

driver.switchTo().frame(driver.findElement(By.xpath("//body/div[2]/iframe")));      

System.out.println(driver.findElement(By.cssSelector("input#dpTodayInput")).getAttribute("value"));                 

driver.findElement(By.cssSelector("input#dpTodayInput")).click();

备注: driver.switchTo().defaultContent()切换至DOM最顶层

你可能感兴趣的:(三、iFrame的处理)