selenium2 原理和常用api
1. webdriver 原理
2. selenium2接口功能
功能 | 代码 |
查找元素 |
1. BY 例如:<input type="text" name="passwd" id="passwd-id" /> driver.findElement(By.id("passwd-id")); driver.findElement(By.name("passwd")); driver.findElement(By.xpath("//input[@id='passwd-id']")) 2. JS |
通过”Keys”这个类,来模拟键盘输入 | element.sendKeys(" and some", Keys.ARROW_DOWN); |
打开,前进,后退 |
navigate().to()”和”get()”方法,实现的功能完全一样
以下2个方法:完全依赖于底层的浏览器。 driver.navigate().forward(); |
cookies |
Set<Cookie> allCookies = driver.manage().getCookies();
注: localstorage 只能使用js完成 |
3. selenium 1与selenium2接口对比
方法 | Selenium1.0 | Selenium2.0 |
打开页面 | Selenium.open(String url); | Driver.get(String url); |
点击元素 | Selenium.click(String arg0); | driver.findElement(By).click(); |
输入框 |
selenium.type(String arg0, String arg1); arg0为元素定位,arg1为输入的值, 再次type时会清空了输入 |
WebElement element = driver.findElement(By); element.sendkeys(arg0); 需要使用element.clear();来清空内容。 |
下拉选择框 |
Selenium.select(String arg0, String arg1); arg0为元素定位,arg1为选择的值 |
找到下拉框元素: Select select=new Select(driver.findElement(By)); 选择对应的选择项: select.selectByVisibleText(String text); //通过文本选择 select.selectByValue(String value); //通过value选择 select.selectByIndex(int index) //通过序号选择 |
单选多选框 |
选择: selenium.check(String locator); 不选: selenium.check(String locator); 判断是否选择: Boolean isChecked(String locator); |
定位元素: WebElement element =driver.findElement(By); 点击:Element.click(); 清除:Element.clear(); 判断是否选择: Boolean isSelected(); 判断是否可选择:Boolean isEnabled(); |
获取文本内容 | selenium.getText(String locator); |
WebElement element =driver.findElement(By); element.getText(); |
弹出框 |
Selenium.chooseOkOnNextConfirmation(); Selenium.chooseCancelOnNextConfirmation(); Selenium.getConfirmation(); 该方法我使用后没有成功,所以一直很纠结 |
Alert alert = driver.switchTo().alert(); alert.accept(); //点击OK alert.dismiss(); //点击cancel alert.getText(); //获取弹出框文本 2.0很好的处理了弹出框问题。 |
frame | 1.0中对frame没有特殊处理跟其他元素一样 |
2.0中需要在frame与defaultContent切换后才能定位, 否则会出现找不到元素的问题 driver.switchTo().defaultContent(); //切换到默认页面内容 driver.switchTo().frame(WebElement frameElement); //切换到对应的frame中 |
页面等待 |
selenium.waitForPageToLoad(String arg0); 直接有方法实现页面加载 |
driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS); //页面加载等待时间 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); //定位元素等待时间 driver.manage().timeouts().setScriptTimeout(30, TimeUnit.SECONDS); //异步加载等待时间 但是只是在firefox上才能起作用,其他浏览器需要 自己实现对应的方法。 |
隐藏元素 | 在1.0中直接可以操作,即使该元素的style为”display:none” |
如果不显示的元素是无法定位的,那就需要触发mouseover 之后才能定位。 |
selenium2 原理和常用api相关推荐
- React16常用api解析以及原理剖析
React16常用api解析以及原理剖析 目录 Vue 与 React 两个框架的粗略区别对比 react 16 版本常见 api react 生命周期 react 事件机制 react.Compon ...
- Object类、常用API
# [Object类.常用API] ## 主要内容 * Object类 * Date类 * DateFormat类 * Calendar类 * System类 * StringBuilder类 * 包 ...
- js find的用法_React常用库Immutable.js常用API
JavaScript 中的对象一般是可变的(Mutable),因为使用了引用赋值,新的对象简单的引用了原始对象,改变新的对象将影响到原始对象.如 foo={a: 1}; bar=foo; bar.a= ...
- 一、Java 面向对象高级——Object类、常用API
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 -[ ] 能 ...
- 01-object类,常用API
声明:此博客来自于黑马程序员学习笔记,并非商用,仅仅是为了博主个人日后学习复习用,如有冒犯,请联系qq208820388立即删除博文,最后,来跟我一起喊黑马牛逼黑马牛逼黑马牛逼 01[Object类. ...
- Android 系统(78)---《android framework常用api源码分析》之 app应用安装流程
<android framework常用api源码分析>之 app应用安装流程 <android framework常用api源码分析>android生态在中国已经发展非常庞大 ...
- Java核心类库之(常用API、字符串类、集合类、泛型)
目录 1 常用API 1.1 Math类 1.2 System类 1.3 Object类 1.4 Objects类 1.5 Arrays类 1.6 基本类型包装类 1.6.1 Integer类概述和使 ...
- WebRTC源码研究(4)web服务器工作原理和常用协议基础
文章目录 WebRTC源码研究(4)web服务器工作原理和常用协议基础 前言 做WebRTC 开发为啥要懂服务器开发知识 1. Web 服务器简介 2. Web 服务器的类型 3. Web 服务器的工 ...
- day01【Object类、常用API】-笔记
day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 -[ ] 能 ...
- 包 权限修饰符 final 常量 枚举 抽象类 接口 多态 内部类 常用API 正则表达式 Lambda
包 什么是包? 包是用来分门别类的管理各种不同类的,类似于文件夹.建包利于程序的管理和维护. 建包的语法格式:package 公司域名倒写.技术名称.报名建议全部英文小写,且具备意义. package ...
最新文章
- iOS_20_微博自己定义可动画切换的导航控制器
- 事务、视图、索引、备份、还原
- 宏定义define的使用
- Windows Phone 8本地化多语言支持
- 图论--Dijkstra算法总结
- 【渝粤题库】陕西师范大学202411 管理学基础 作业 (专升本、高起本、高起专)
- Weblogic之简介
- sklearn学习笔记之preprocessing
- 如何录制电脑系统声音(Audacity)
- FLUKE 754过程校准器带HART协议
- Android8.1 MTK平台 SystemUI源码分析之 Notification流程
- 《财富》杂志评选出必读的75本最睿智的图书
- YARN-ResourceManager重启
- Koo叔说Shader—UV旋转
- ugui 转轮_unity3D的FingerGestures小工具
- 35岁仍然落魄,有这3个苗头将大器晚成,你要刮目相看,主动结交
- 【coq】函数语言设计 练习题tatcislogics 总结
- please select a valid python interpreter(请选择一个解释器)
- LINQ的Order By (Descending) 操作
- 使用Spring实现AOP的三种方式
热门文章
- IE工程师应该如何规划职业发展?-优思学院
- 博弈论基础-蒋文华(浙大)
- 2022-2028全球与中国无线电远程单元市场现状及未来发展趋势
- 天网防火墙技术白皮书
- 【月伴流星】GhostW7_SP1_U_x64_V2013.07_OEM通用纯净、装机、美化版(三版齐发)
- 电脑总是弹出广告怎么办?
- 堆栈callstack打印
- 3D模型欣赏:斯巴达女将军 长枪圆盾战士 性感美女
- 《Unix网络编程》环境搭建
- java邮件服务器搭建_邮件服务器+javamail(仅包括发送)搭建