Selenium Webdriver概述(转)
Selenium Webdriver
https://www.yiibai.com/selenium/selenium_overview.html#
webdriver自动化俗称Selenium 2.0测试Web应用程序工具。 webdriver使用不同的底层框架,Selenium 遥控器使用JavaScript的Selenium 核嵌入式已经在有一定的局限性的浏览器中。 webdriver直接交互而不与Selenium 远程控制,依赖于服务器上的任何中介的浏览器。它是用在以下方面:
在Selenium开发者社区努力下,不断提高Selenium webdriver与Selenium的整合。
MULT浏览器测试,包括对不能很好地支持Selenium的远程控制浏览器改进的功能(硒1.0)
处理多个帧,多个浏览器窗口,弹出窗口和警报。
复杂的页面导航。
高级用户导航,如拖动和拖放。
基于AJAX的UI元素
体系结构
webdriver最好用一个简单的架构图,说明,如下图所示。

Selenium RC VS webdriver
| Selenium RC | Selenium WebDriver |
|---|---|
| Selenium RC的结构复杂,因为服务器需要启动在开始试运行前。 | webdriver架构比Selenium RC简单,因为它控制着从操作系统层面的浏览器。 |
| Selenium服务器充当浏览器和Selenese的命令之间的中间人 | webdriver直接相互作用,以在浏览器和使用浏览器的引擎进行控制。 |
| Selenium RC的脚本执行速度较慢,因为它使用了Javascript来与RC互动 | webdriver的速度更快,因为它直接交互使用的浏览器。 |
| Selenium RC不能支持无头,因为它需要一个真正的浏览器一起工作。 | webdriver可以支持无头执行 |
| 它是一个简单的API | 复杂,API相比,RC有点大 |
| 减面向对象的API | 纯粹的面向对象的API |
| 不能测试移动应用程序 | 可测试iPhone/Android应用程序 |
使用webdriver脚本
让我们了解webdriver如何工作。为了演示目的,我们将使用http://www.calculator.net/。我们将执行“百分比计算器”,这是位于“数学计算器”。我们已经下载了所需要webdriver的JAR。请参阅环境设置一章。
第1步:从提取Eclipse文件夹中启动“Eclipse”。

第2步:点击“Browse”按钮选择工作区。

第3步:现在,创建“New Project”,从“File”菜单。

第4步:输入项目名称,然后单击“Next”。

第五步:进入Libraries选项卡,并选中所有的JAR包文件,我们已经下载(请参阅环境搭建章)。添加引用Selenium webdriver的库文件夹中的所有JAR,selenium-java-2.42.2.jar和selenium-java-2.42.2-srcs.jar

第6步:如下图所示创建包。

第7步:现在,让我们创建一个通过执行'Class'右键单击程序包,然后选择“New”>>“Class”

第8步:现在命名类,并让它设置为main方法

第9步:类概要如下所示。

步骤10:现在是时候编写代码了。下面的脚本更容易理解,因为它清楚地解释了一步,在嵌入的注释步骤。请看看“Locators”一章,了解如何捕捉对象的属性。
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver; public class webdriverdemo
{
public static void main(String[] args)
{
WebDriver driver = new FirefoxDriver(); //Puts a Implicit wait, Will wait for 10 seconds before throwing exception
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //Launch website
driver.navigate().to("http://www.calculator.net/"); //Maximize the browser
driver.manage().window().maximize(); // Click on Math Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[3]/a")).click(); // Click on Percent Calculators
driver.findElement(By.xpath(".//*[@id='menu']/div[4]/div[3]/a")).click(); // Enter value 10 in the first number of the percent Calculator
driver.findElement(By.id("cpar1")).sendKeys("10"); // Enter value 50 in the second number of the percent Calculator
driver.findElement(By.id("cpar2")).sendKeys("50"); // Click Calculate Button
driver.findElement(By.xpath(".//*[@id='content']/table/tbody/tr/td[2]/input")).click(); // Get the Result Text based on its xpath
String result = driver.findElement(By.xpath(".//*[@id='content']/p[2]/span/font/b")).getText(); //Print a Log In message to the screen
System.out.println(" The Result is " + result); //Close the Browser.
driver.close();
}
}
第11步:以上脚本的输出将被打印在控制台。

最常用的命令
下表列出了webdriver的最常用的命令以及它的语法,这将有助于我们开发webdriver脚本。
| Commmand | 描述 |
|---|---|
| driver.get("URL") | 导航到应用程序 |
| element.sendKeys("inputtext") | 输入一些文本输入框 |
| element.clear() | 从输入框清空内容 |
| select.deselectAll() | 这将取消选择页面上的第一个选择所有选项: |
| select.selectByVisibleText("some text") | select the OPTION with the input specified by the user. |
| driver.switchTo().window("windowName") | Moving the focus from one window to another |
| driver.switchTo().frame("frameName") | swing from frame to frame |
| driver.switchTo().alert() | Helps in handling alerts |
| driver.navigate().to("URL") | Navigate to the URL |
| driver.navigate().forward() | To Navigate forward |
| driver.navigate().back() | To Navigate back |
| driver.close() | Closes the current Browser associated with the driver |
| driver.quit() | Quits the driver and closes all the associated window of that driver. |
| driver.refresh() | Refreshes the current page. |
Selenium Webdriver概述(转)的更多相关文章
- 转载 基于Selenium WebDriver的Web应用自动化测试
转载原地址: https://www.ibm.com/developerworks/cn/web/1306_chenlei_webdriver/ 对于 Web 应用,软件测试人员在日常的测试工作中, ...
- Selenium WebDriver Code
Selenium WebDriver 用于模拟浏览器的功能,可以做网站测试用,也可以用来做crawler.我是用eclipse开发的,导入selenium-server-standalone-***. ...
- 使用httpclient 调用selenium webdriver
结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver ...
- selenium webdriver 右键另存为下载文件(结合robot and autoIt)
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为 ...
- Selenium Webdriver java 积累一
Selenium Webdriver 学习: http://jarvi.iteye.com/category/203994 https://github.com/easonhan007/webdriv ...
- Selenium的PO模式(Page Object Model)|(Selenium Webdriver For Python)
研究Selenium + python 自动化测试有近两个月了,不能说非常熟练,起码对selenium自动化的执行有了深入的认识. 从最初无结构的代码,到类的使用,方法封装,从原始函数 ...
- Selenium Webdriver下click失效问题解决
最近在使用Selenium Webdriver(Selenium2.0)进行界面自动化测试的时候发现单击事件无效,通过driver.findElement的方式是可以找到click元素的,但是就是cl ...
- 如何用selenium webdriver 捕获js error
### 问题 捕捉页面上js error ### 解决办法 从Selenium webdriver log 中解析 # -*- coding:utf8 -*- import unittest from ...
- Selenium WebDriver 之 PageObjects 模式 by Example
目录 1. 项目配置 2. 一个WebDriver简单例子 3. 使用Page Objects模式 4. 总结 5. Troubleshooting 6. 参考文档 本篇文章通过例子来阐述一下Sele ...
随机推荐
- AC自动机——多个kmp匹配
(并不能自动AC) 介绍: Aho-Corasick automaton,最经典的处理多个模式串的匹配问题. 是kmp和字典树的结合. 精髓与灵魂: ①利用trie处理多个模式串 ②引入fail指针. ...
- apigateway-kong(四)负载均衡理论及实现
负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群).网络连接.CPU.磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用.最大化吞吐率.最小化响应时间.同时 ...
- Python核心编程的四大神兽:迭代器、生成器、闭包以及装饰器
生成器 生成器是生成一个值的特殊函数,它具有这样的特点:第一次执行该函数时,先从头按顺序执行,在碰到yield关键字时该函数会暂停执行该函数后续的代码,并且返回一个值:在下一次调用该函数执行时,程 ...
- Mac系统 MAMP 集成环境下搭建 Redis
之前由于嫌弃 mac 下命令行搭建 php+mysql 环境太复杂,给自己挖了一个大坑 就是偷懒使用了名为 MAMP 的一键集成安装包 好用是好用,但是等你需要添加点模块和功能的时候就傻眼了 这几天在 ...
- OpenStack 云主机深入了解(十四)
云主机深入了解 1.云主机在计算节点以进程方式运行 2.监听vnc的端口,vnc默认端口从5900开始, 多台云主机,端口递增 3.云主机桥接网卡,与宿主机联通网络 提示:在openstack环境下, ...
- Hadoop生态圈-Kafka的完全分布式部署
Hadoop生态圈-Kafka的完全分布式部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客主要内容就是搭建Kafka完全分布式,它是在kafka本地模式(https:/ ...
- JVM总结(一):概述--JVM运行时数据区
大三下,趁着寒假重温一遍JVM,准备在一个系列来总价一下学习JVM的整个过程.争取在接下来的一个星期内更新完这一个系列,然后回家过年. JVM运行时数据区 线程私有的数据区 程序计数器 虚拟机栈 本地 ...
- SQL记录-PLSQL触发器
PL/SQL触发器 触发器是存储程序,它会自动执行或发射当一些事件发生.触发器,事实上,写入响应于以下任一事件将被执行: 数据库操作(DML)语句(DELETE,INSERT,UPDATE或) 数据库 ...
- 【DS】排序算法之选择排序(Selection Sort)
一.算法思想 选择排序是一种简单直观的排序算法.它的工作原理如下: 1)将序列分成两部分,前半部分是已经排序的序列,后半部分是未排序的序列: 2)在未排序序列中找到最小(大)元素,放到已排序序列的末尾 ...
- argunlar 1.0.1 【数据绑定】
<!DOCTYPE html><html lang="en" ng-app><head> <meta charset="U ...