selenium常见面试题
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常见面试题相关推荐
- selenium 常见面试题以及答案(Java版)
1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如 ...
- selenium 常见面试题以及答案
1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如 ...
- 软件测试系统学习流程和常见面试题
在学习软件测试的时候你是否会感觉到不知从何下手? 今天教导你们软件测试学习的系统流程和面试常见的问题. 学习流程 一.必备技能 编程基础,能看懂前端页面,掌握一门语言:php/python/java等 ...
- 测试开发岗 - 常见面试题
目录 1. 什么是软件测试, 谈谈你对软件测试的了解 2. 我看你简历上有写了解常见的开发模型和测试模型, 那你跟我讲一下敏捷模型 3. 我看你简历上还写了挺多开发技能的, 那你给我讲讲哈希表的实现流 ...
- 测试开发工程师常见面试题
1. CPU 和 GPU的区别 CPU 力气大啥P事都能干,还要协调. GPU 上面那家伙的小弟,老大让他处理图形,这方面处理简单,但是量大,老大虽然能处理,可是老大只有那么几个兄弟,所以不如交给小弟 ...
- 2022年软件测试工程师常见面试题,标准答案都在这
软件测试工程师常见面试题(经典篇),标准答案来了 经常有人问我要软件测试的面试题,2022年小编花了十多天的时间整理的软件测试面试真题.各位小伙伴记好了,也可以把内容分享给身边有需要的朋友哦. 1 . ...
- mysql关于时间的面试题,mysql时间设置默认值MySQL常见面试题
1.limit(选出10 到20 条) select * from students order by id limit 9,10; 2.MySQL 会使用索引的操作符号 =,>,=,betwe ...
- java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)
数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...
- Spring常见面试题及答案汇总1000道(春招+秋招+社招)
Spring面试题以及答案整理[最新版]Spring高级面试题大全(2021版),发现网上很多Spring面试题都没有答案,所以花了很长时间搜集,本套Spring面试题大全,汇总了大量经典的Sprin ...
最新文章
- Typora输出表情 Typora_Smile
- 了解机器学习的八大专业术语
- 激光雷达(LiDAR)点云数据知多少?
- oracle 取系统当前年份_Oracle如何获取系统当前时间等操作实例
- matlab 交叉验证 代码,交叉验证(Cross Validation)方法思想简介
- 显示天气 php代码,天气预报查询示例代码
- LWIP之UDP协议
- 奇怪的315:大家都知道,为什么要等晚会曝光,管理部门呢
- SVN客户端——SmartSVN功能详解
- 将自己的数据制作成VOC2007数据集
- 基于MATLAB/Simulink的电力电子电路仿真技术——直流降压(Buck)变换器及Powergui的使用
- web 页面实现页面右下角弹窗功能
- 深度学习敲门砖——神经网络
- java实现画笔的画圆与矩形功能_Java实现画线、矩形、椭圆、字符串功能
- 163邮箱免费账号注册,163邮箱申请能免费注册吗?
- autojs快阅读协议脚本源代码免费分享
- C10K问题与IO多路复用
- 【Python 实战基础】 如何绘制中国地图展示省份GDP数据
- anaconda自动安装jupyter后打开E盘
- [自考总结]想要去的远方,终有一天会到达
热门文章
- python local variable 'xxx' referenced before assignment
- Fedora core 2下建立Poptop服务器以及常见问题
- [转贴]人老总是一场空
- java线程状态_java并发编程之线程状态
- cmake安装更新(解决cmake报错:CMake 3.8 or higher is required. You are running version 3.5.1
- Layer1隐私项目BeamX DAO完成200万美元融资,Collider Ventures、AirSpeed18等机构参投
- Umbrella Network与Linear Finance合作,将专业金融数据带入DeFi
- 本周Whale Alert监测到7.9万枚BTC在匿名地址间转账
- SAP License:面试谈
- Axure电商后台业务管理系统原型模板+app电商原型交互+移动端电商通用PRD文档+全局交互用例说明+Axure高保真电商社交prd文档