由于历史原因,一些大型机构的应用经常使用iframe开发Web应用,但是iframe的应用给Web的自动化测试造成了很大的困难。更是阻碍用户的自动化验收进程。在敏捷和DevOps流行的今天,我们如何客服这种障碍,把此类应用也加入敏捷和DevOps的历史潮流呢?
请见我们的解决方法。
企业敏捷与DevOps技术工具社区
Web元素定位解决方法
/*
两层iframe嵌套元素定位
定位第2层iframe中的邮箱营业厅图片
*/
/*
第1层iframe中元素定位
应用中心菜单
*/
Thread.sleep(2000);
WebElement mainContentBox = driver.findElement(By.id("mainContentBox"));
WebElement imain = driver.findElement(By.id("main"));
WebElement divmain = driver.findElement(By.id("div_main"));
//第1层iframe获取焦点
WebElement iframe = driver.findElement(By.id("googSubscription"));
//焦点跳转到第1层iframe内
driver.switchTo().frame("googSubscription");
WebElement navcontainer = driver.findElement(By.id("navcontainer"));
WebElement appcul = driver.findElement(By.xpath("//div[@id='navcontainer']/ul[2]"));
WebElement appli = driver.findElement(By.xpath("//div[@id='navcontainer']/ul[2]/li[2]"));
//点击应用中心菜单显示邮箱营业厅所在第2层iframe
WebElement yingyong_i = driver.findElement(By.xpath("//div[@id='navcontainer']/ul[2]/li[2]/a/i"));
yingyong_i.click();
//第2层iframe中邮箱营业厅图片
WebElement ul1 = driver.findElement(By.xpath("//div[@class='skin_main']"));
driver.switchTo().frame("modulecontainer");
//点击邮箱营业厅 /image
WebElement youx_bt = driver.findElement(By.xpath("//li[@title='邮箱营业厅']/div/a/img"));
youx_bt.click();