1. webdriver 原理

http://www.cnblogs.com/timsheng/archive/2012/06/12/2546957.html

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();
driver.navigate().back();

cookies Set<Cookie> allCookies = driver.manage().getCookies();

注: localstorage 只能使用js完成

   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

3.  selenium 1与selenium2接口对比

参考:http://www.51testing.com/html/85/258885-847648.html
方法 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相关推荐

  1. React16常用api解析以及原理剖析

    React16常用api解析以及原理剖析 目录 Vue 与 React 两个框架的粗略区别对比 react 16 版本常见 api react 生命周期 react 事件机制 react.Compon ...

  2. Object类、常用API

    # [Object类.常用API] ## 主要内容 * Object类 * Date类 * DateFormat类 * Calendar类 * System类 * StringBuilder类 * 包 ...

  3. js find的用法_React常用库Immutable.js常用API

    JavaScript 中的对象一般是可变的(Mutable),因为使用了引用赋值,新的对象简单的引用了原始对象,改变新的对象将影响到原始对象.如 foo={a: 1}; bar=foo; bar.a= ...

  4. 一、Java 面向对象高级——Object类、常用API

    day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 -[ ] 能 ...

  5. 01-object类,常用API

    声明:此博客来自于黑马程序员学习笔记,并非商用,仅仅是为了博主个人日后学习复习用,如有冒犯,请联系qq208820388立即删除博文,最后,来跟我一起喊黑马牛逼黑马牛逼黑马牛逼 01[Object类. ...

  6. Android 系统(78)---《android framework常用api源码分析》之 app应用安装流程

    <android framework常用api源码分析>之 app应用安装流程 <android framework常用api源码分析>android生态在中国已经发展非常庞大 ...

  7. 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类概述和使 ...

  8. WebRTC源码研究(4)web服务器工作原理和常用协议基础

    文章目录 WebRTC源码研究(4)web服务器工作原理和常用协议基础 前言 做WebRTC 开发为啥要懂服务器开发知识 1. Web 服务器简介 2. Web 服务器的类型 3. Web 服务器的工 ...

  9. day01【Object类、常用API】-笔记

    day01[Object类.常用API] 主要内容 Object类 Date类 DateFormat类 Calendar类 System类 StringBuilder类 包装类 教学目标 -[ ] 能 ...

  10. 包 权限修饰符 final 常量 枚举 抽象类 接口 多态 内部类 常用API 正则表达式 Lambda

    包 什么是包? 包是用来分门别类的管理各种不同类的,类似于文件夹.建包利于程序的管理和维护. 建包的语法格式:package 公司域名倒写.技术名称.报名建议全部英文小写,且具备意义. package ...

最新文章

  1. iOS_20_微博自己定义可动画切换的导航控制器
  2. 事务、视图、索引、备份、还原
  3. 宏定义define的使用
  4. Windows Phone 8本地化多语言支持
  5. 图论--Dijkstra算法总结
  6. 【渝粤题库】陕西师范大学202411 管理学基础 作业 (专升本、高起本、高起专)
  7. Weblogic之简介
  8. sklearn学习笔记之preprocessing
  9. 如何录制电脑系统声音(Audacity)
  10. FLUKE 754过程校准器带HART协议
  11. Android8.1 MTK平台 SystemUI源码分析之 Notification流程
  12. 《财富》杂志评选出必读的75本最睿智的图书
  13. YARN-ResourceManager重启
  14. Koo叔说Shader—UV旋转
  15. ugui 转轮_unity3D的FingerGestures小工具
  16. 35岁仍然落魄,有这3个苗头将大器晚成,你要刮目相看,主动结交
  17. 【coq】函数语言设计 练习题tatcislogics 总结
  18. please select a valid python interpreter(请选择一个解释器)
  19. LINQ的Order By (Descending) 操作
  20. 使用Spring实现AOP的三种方式

热门文章

  1. IE工程师应该如何规划职业发展?-优思学院
  2. 博弈论基础-蒋文华(浙大)
  3. 2022-2028全球与中国无线电远程单元市场现状及未来发展趋势
  4. 天网防火墙技术白皮书
  5. 【月伴流星】GhostW7_SP1_U_x64_V2013.07_OEM通用纯净、装机、美化版(三版齐发)
  6. 电脑总是弹出广告怎么办?
  7. 堆栈callstack打印
  8. 3D模型欣赏:斯巴达女将军 长枪圆盾战士 性感美女
  9. 《Unix网络编程》环境搭建
  10. java邮件服务器搭建_邮件服务器+javamail(仅包括发送)搭建