1.如何切换iframe

  问题:如果你在一个default content中查找一个在iframe中的元素,那肯定是找不到的。反之你在一个iframe中查找另一个iframe元素或default content中的元素,那必然也定位不到

  基本步骤:先通过switch进入到iframe中,找到想找的元素,然后跳出来,进行其他的操作

  1).定位到iframe:WebElement IframeElement=driver.findElement(By.id(“frame”));

  2).切到这个iframe 里面:Driver.switch().frame(IframeElement);

  3).定位Iframe里面,你想要的元素:

  WebElement content=driver.findElement(By.className("CSS1Compat"));//在iframe中定位要找的元素

  content.sendKeys("cke_contents_content");//操作元素

  driver.switchTo().defaultContent();//跳出iframe,不跳出来是不能进行iframe外的操作的

2.如何处理弹窗

  1)处理弹窗就是一行代码:driver.switchTo().alert().accept(),这个弹窗就关闭了;

  2)alert()方法知识:http://www.w3school.com.cn/jsref/met_win_alert.asp

3.如何处理上传文件

  注:selenium不能处理windows窗口,它能提供的方法就是,把图片或者文件的地址用sendkeys传给【上传文件/图片】控件,对于含有input element的上传, 我们可以直接通过sendkeys来传入文件路径

  1)找到上传控件element,并输入路径:

  WebElement element = driver.findElement(By.id("cloudFax-attachment-form-upload-input"));

  element.sendKeys(getFilePath(text.txt));

  2)路径的处理:

  private String getFilePath(String resource) {

  URL path = this.getClass().getResource(resource);

  return path.toString().replaceAll("file:/","");
  }

  附:看到另外一种简单粗暴的处理方法,只需要3条代码来处理此问题  

  WebElement uploadButton = driver.findElement(By.name("image"));

  String file="C:\\Users\\Public\\Pictures\\Sample Pictures\\flower.jpg";

  uploadButton.sendKeys(file);

相关链接:https://github.com/zhaohuif/-/wiki/Selenium-webdriver%E5%AD%A6%E4%B9%A0%E8%BF%87%E7%A8%8B%E4%B8%AD%E9%81%87%E5%88%B0%E7%9A%84%E9%97%AE%E9%A2%98

     http://www.51testing.com/html/55/n-860455.html

       http://ask.testfan.cn/article/26

4.如何切换浏览器窗口

  原理:webdriver是根据句柄来识别窗口的,因为句柄可以看做是窗口的唯一标识id。获取新窗口的思路是:先获取当前窗口句柄,然后获取所有窗口的句柄,通过排除当前句柄,来确定新窗口的句柄。获取到新窗口句柄后,通过switchto.window(newwindow_handle)方法,将新窗口的句柄当参数传入就可以捕获到新窗口了。

 //得到当前窗口的句柄 

  String currentWindow = dr.getWindowHandle();
  //得到所有窗口的句柄
  Set<String> handles = dr.getWindowHandles();
  //排除当前窗口的句柄,则剩下是新窗口(/*把Set集合转换成Iterator*/)
  Iterator<String> it = handles.iterator();//迭代器
  while(it.hasNext()){
  String handle = it.next();
  if(currentWindow.equals(handle)) continue;
  driver.close();
  WebDriver window = dr.switchTo().window(handle);
  System.out.println("title,url = "+window.getTitle()+","+window.getCurrentUrl());

转载于:https://www.cnblogs.com/gong-qin/p/selenium.html

selenium常见面试题相关推荐

  1. selenium 常见面试题以及答案(Java版)

    1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如 ...

  2. selenium 常见面试题以及答案

    1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如 ...

  3. 软件测试系统学习流程和常见面试题

    在学习软件测试的时候你是否会感觉到不知从何下手? 今天教导你们软件测试学习的系统流程和面试常见的问题. 学习流程 一.必备技能 编程基础,能看懂前端页面,掌握一门语言:php/python/java等 ...

  4. 测试开发岗 - 常见面试题

    目录 1. 什么是软件测试, 谈谈你对软件测试的了解 2. 我看你简历上有写了解常见的开发模型和测试模型, 那你跟我讲一下敏捷模型 3. 我看你简历上还写了挺多开发技能的, 那你给我讲讲哈希表的实现流 ...

  5. 测试开发工程师常见面试题

    1. CPU 和 GPU的区别 CPU 力气大啥P事都能干,还要协调. GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟 ...

  6. 2022年软件测试工程师常见面试题,标准答案都在这

    软件测试工程师常见面试题(经典篇),标准答案来了 经常有人问我要软件测试的面试题,2022年小编花了十多天的时间整理的软件测试面试真题.各位小伙伴记好了,也可以把内容分享给身边有需要的朋友哦. 1 . ...

  7. mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题

    1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...

  8. java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  9. Spring常见面试题及答案汇总1000道(春招+秋招+社招)

    Spring面试题以及答案整理[最新版]Spring高级面试题大全(2021版),发现网上很多Spring面试题都没有答案,所以花了很长时间搜集,本套Spring面试题大全,汇总了大量经典的Sprin ...

最新文章

  1. Typora输出表情 Typora_Smile
  2. 了解机器学习的八大专业术语
  3. 激光雷达(LiDAR)点云数据知多少?
  4. oracle 取系统当前年份_Oracle如何获取系统当前时间等操作实例
  5. matlab 交叉验证 代码,交叉验证(Cross Validation)方法思想简介
  6. 显示天气 php代码,天气预报查询示例代码
  7. LWIP之UDP协议
  8. 奇怪的315:大家都知道,为什么要等晚会曝光,管理部门呢
  9. SVN客户端——SmartSVN功能详解
  10. 将自己的数据制作成VOC2007数据集
  11. 基于MATLAB/Simulink的电力电子电路仿真技术——直流降压(Buck)变换器及Powergui的使用
  12. web 页面实现页面右下角弹窗功能
  13. 深度学习敲门砖——神经网络
  14. java实现画笔的画圆与矩形功能_Java实现画线、矩形、椭圆、字符串功能
  15. 163邮箱免费账号注册,163邮箱申请能免费注册吗?
  16. autojs快阅读协议脚本源代码免费分享
  17. C10K问题与IO多路复用
  18. 【Python 实战基础】 如何绘制中国地图展示省份GDP数据
  19. anaconda自动安装jupyter后打开E盘
  20. [自考总结]想要去的远方,终有一天会到达

热门文章

  1. python local variable 'xxx' referenced before assignment
  2. Fedora core 2下建立Poptop服务器以及常见问题
  3. [转贴]人老总是一场空
  4. java线程状态_java并发编程之线程状态
  5. cmake安装更新(解决cmake报错:CMake 3.8 or higher is required. You are running version 3.5.1
  6. Layer1隐私项目BeamX DAO完成200万美元融资,Collider Ventures、AirSpeed18等机构参投
  7. Umbrella Network与Linear Finance合作,将专业金融数据带入DeFi
  8. 本周Whale Alert监测到7.9万枚BTC在匿名地址间转账
  9. SAP License:面试谈
  10. Axure电商后台业务管理系统原型模板+app电商原型交互+移动端电商通用PRD文档+全局交互用例说明+Axure高保真电商社交prd文档