zoukankan      html  css  js  c++  java
  • Java+selenium之WebDriver常见特殊情况如iframe/弹窗处理(四)

    1. iframe 的处理

    查找元素必须在对应的 ifarme 中查找,否则是找不到的

    1 // 传入参数为 frame 的序号,从0开始
    2 driver.switchTo().frame(Int index); 
    3 // 传入参数为 frame 的 ID 或者 Name 属性 
    4 driver.switchTo().frame(String nameOrId);
    5 // 传入参数为 frameElement
    6 driver.switchTo().frame(WebElement frameElement);
    7 // 切换回父级 
    8 driver.switchTo().defaultContent();

    2. 弹出窗口的处理

     1 // 只弹出一个窗口的情况 , 不需要传入任何参数 , 直接切换到下一个窗口
     2 // 得到当前窗口的句柄
     3 String currentWindow = driver.getWindowHandle(); 
     4 // 得到所有窗口的句柄
     5 Set<String> handles = driver.getWindowHandles(); 
     6 Iterator<String> it = handles.iterator(); 
     7 while (it.hasNext()) { 
     8     String handle = it.next(); 
     9     if (currentWindow.equals(handle)) 
    10         continue;
    11     WebDriver window = driver.switchTo().window(handle); 
    12     log.info("title,url = " + window.getTitle() + "," + window.getCurrentUrl()); 
    13  }
     1 // 切换到指定的窗口, 遍历最多 10 次, 循环是为了提高稳定性, 个别浏览器下有的时候一次遍历找不到 ( String windowTitle ) 
     2 for (int a = 0; a < =9; a++) { 
     3      Set<String> windowHandles = driver.getWindowHandles(); 
     4       for (String handler : windowHandles) { 
     5          driver.switchTo().window(handler); 
     6            String title = driver.getTitle(); 
     7            if (windowTitle.equals(title)) { 
     8             a = 10;  
     9             break;
    10            } 
    11       } 
    12 } 

    3.  处理对话框 alertconfirmprompt

       driver.switchTo().alert()可以得到alertconfirmprompt 对话框的对象,然后运用其方法对它进行操作。对话框操作的主要方法有:

    • getText() 得到它的文本值
    • accept() 相当于点击它的"确认"
    • dismiss() 相当于点击"取消"或者叉掉对话框
    • sendKeys() 输入值,这个 alertconfirm 不能用,会报错

    4. 富文本编辑器

    1 // 富文本编辑框的处理 
    2 driver.switchTo().frame("nameOrId"); // 定位到富文本输入框所在的 frame 
    3 JavascriptExecutor js = (JavascriptExecutor) driver;   
    4 js.executeScript("document.body.innerHTML='ABCDEFG'"); // 通过 js 赋值进去
    兴趣是最好的老师,知识改变格局,转载请注明出处!
  • 相关阅读:
    你真的了解HTML吗?–雅虎面试题
    移动端meta 解释
    PLSQL导入导出表的正确步骤
    Linux命令学习之xargs命令
    python搭建简易Web Server
    python小项目练习之转换像素图片为字符图
    向量空间搜索引擎基本理论
    Elasticsearch 常用基本查询
    Elasticsearch配置参数介绍
    JavaWeb温习之防止表单重复提交
  • 原文地址:https://www.cnblogs.com/andrew209/p/9017087.html
Copyright © 2011-2022 走看看