1、Selenium1(Remote control)

Selenium1包含Selenium服务器(RC)和客户端库文件两部分
Selenium服务器用来接收测试程序传来的selenium命令,解释并执行,然后向测试程序反馈测试的结果
RC服务器捆绑了Selenium Core,Selenium Core是javascript程序,用于调用浏览器内置的JavaScript解释器,以解释和执行Selenese命令。它在测试程序打开浏览器时自动将其注入浏览器。
客户端库文件提供了对编程的支持,这样就可以自己设计程序来运行selenium命令,对于每一种支持的编程语言,都有不同的客户端库文件。
selenium下载:
http://www.seleniumhq.org/download/
位于”Selenium Client Driver”栏,选择使用的编程语文版本下载即可,这些包中时包含了selenium1和Selenium2的文件使用,如下图:

使用selenium1时需要下载Selenium Standalone Server:

下载完成后通过java -jar selenium-server-standalone-2.53.0.jar启动selenium服务器,如下图:

2、Selenium2

Selenium2与selenium1相比,API更容易理解和使用,可读性与维护性也大提高。selenium2完全是一套类库,不依赖于任何测试框架,不需要启动其他进程或服务。
另外,二者采用的技术方案也不同。selenium1是在浏览器中运行javascript来进行测试,而selenium2则是通过原生浏览器支持或者浏览器扩展直接控制浏览器
严格的说,它们完全属于两个不同产品而不是简单的升级关系,更像是互补关系,它们之间各有优劣,selenium2可以弥补selenium1存在的缺点(例如能够绕过JS限制、API更易使用),而Selenium1也

可以解决selenium2存在的问题(例如支持更多的浏览器).

下面是selenium1与selenium2的示例代码:

package com.my.webdriver;import java.util.concurrent.TimeUnit;import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebDriver.Navigation;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.interactions.Actions;import com.thoughtworks.selenium.DefaultSelenium;public class Test {private WebDriver driver;private String baseUrl;private boolean acceptNextAlert = true;private StringBuffer verificationErrors = new StringBuffer();public Test() {// TODO Auto-generated constructor stub}public void testselenium1() {// 创建创建实例selenium,指定服务器的主机名或ip地址,浏览器为firefox(支持的浏览器有*safari,*chrome,*iexplorer,*opera等)// 起始URL为百度DefaultSelenium selenium = new DefaultSelenium("localhost", 4444, "*firefox", "https://www.baidu.com");selenium.start(); // 启动浏览器和控制界面selenium.open("https://www.baidu.com"); // 打开指定URLselenium.windowFocus(); // 激动窗口selenium.windowMaximize(); // 最大化窗口selenium.refresh(); // 刷新页面selenium.type("id=kw", "软件测试"); // 输入指定值selenium.click("id=su"); // 单击try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}selenium.close(); // 关闭测试所使用的浏览器selenium.stop(); // 关闭selenium控制界面}public void testselenium2() {// System.setProperty("webdriver.ie.driver","F:/java/selnium/IEDriverServer.exe");// WebDriver driver = new InternetExplorerDriver();// 指定firefox的路径// System.setProperty("webdriver.firefox.bin","C:/Program Files// (x86)/Mozilla Firefox/firefox.exe");WebDriver driver = new FirefoxDriver(); // 创建firefox对象Navigation navigation = driver.navigate(); // selenium2的API很好理解,基本上可以按字面意思来使用navigation.to("https://www.baidu.com");// driver.get("https://www.baidu.com");navigation.refresh();driver.manage().window().maximize();driver.navigate().back();driver.navigate().forward();WebElement subox = driver.findElement(By.id("kw"));subox.sendKeys("软件测试");WebElement subtn = driver.findElement(By.id("su"));subtn.click();try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}driver.close();}public void testselenium2_1() {driver = new FirefoxDriver();baseUrl = "https://worktile.com/";driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);driver.manage().timeouts().pageLoadTimeout(30, TimeUnit.SECONDS);driver.get(baseUrl);driver.manage().window().maximize();Actions action = new Actions(driver);// 模拟鼠标停顿显示页面隐藏元素action.moveToElement(driver.findElement(By.cssSelector("button.btn.btn-login"))).perform();try {Thread.sleep(1000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}driver.findElement(By.linkText("登录免费版")).click();;try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}driver.quit();String verificationErrorString = verificationErrors.toString();if (!"".equals(verificationErrorString)) {fail(verificationErrorString);}}private void fail(String verificationErrorString) {// TODO Auto-generated method stub}public static void main(String[] args) {// TODO Auto-generated method stubTest t1 = new Test();t1.testselenium1();t1.testselenium2();t1.testselenium2_1();}}

selenium1、selenium2 示例代码(java版)相关推荐

  1. 动态规划示例汇总-Java版(组合硬币、跳台阶、最小路径和、最长递增子序列、最长公共子序列、01背包问题、最小编辑代价)

    动态规划算法示例汇总-Java版 组合硬币 Java解题-暴力搜索 Java解题-记忆搜索 Java解题-动态规划(两种写法) 跳台阶 Java解题-暴力递归 Java解题-动态规划 矩阵最小路径和 ...

  2. 超大数相乘的java代码,java版大数相乘

    在搞ACM的时候遇到大数相乘的问题,在网上找了一下,看到了一个c++版本的 用java搞了一个版本 这里说一下思路 将数字已字符串形式接收,转换成int[]整型数组,然后num1[],num2[]依次 ...

  3. 竞彩足球混合过关赔率API调用示例代码2020版

    $user = 'smmz'; $secret = '2e54c7eae2c5a6c01'; //竞彩足球混合过关数据 // +------------------------------------ ...

  4. 圣诞快乐java代码,java版的下雪,大家圣诞快乐

    everybody, Merry Christmas ! 里面有播放音乐,太大了上传不了,想看效果的把播放音乐的代码注释掉就好了. 不好意思,图片忘记了,现补上了,不过图片是网上随便找的图扣的,不是很 ...

  5. java导出highcharts_Highcharts导出代码Java版

    Highcharts是一个用纯JavaScript编写的图表库,提供了一个交互式的图表添加到您的网站或Web应用程序的简单方法.Highcharts目前支持线,样条,面积,areaspline,柱形图 ...

  6. java表白程序玫瑰花_给爱人的玫瑰花表白程序代码--Java版

    1 书写表白语句的frame(渐入功能) package com.wanju.blessing; import java.awt.Color; import java.awt.Container; i ...

  7. java玫瑰花代码_给爱人的玫瑰花表白程序代码--Java版-Go语言中文社区

    1 书写表白语句的frame(渐入功能) package com.wanju.blessing; import java.awt.Color; import java.awt.Container; i ...

  8. 五子棋人机对弈代码——java版

    算法是穷举递归法,只不过用java重新写了一遍 import java.awt.Color; import java.awt.Container; import java.awt.Graphics; ...

  9. Java版世界时钟示例

    Java版世界时钟示例 这是一个Java版的世界时钟示例,移植自Gerrit创建的同名Swing应用(http://www.jug-muenster.de/swing-worldclock-427 ) ...

  10. LocalOS 0.1.1 版发布(内附本程序源码及Java版网游找CALL示例源码)

    俗话说隔行如隔山,感觉上是一回事,自己动手又是另一回事.这两天回家就帮亲戚家孩子做外挂,本以为很简单,结果泡广海逛看雪的,研究了三个半晚上才在今天接近凌晨时大体弄好.万幸自己一直在混软件这碗饭,并没真 ...

最新文章

  1. PHP 高级编程之多线程
  2. mysql blob 存储乱码_mysql 保存 blob 类型数据 乱码 解决
  3. java在己有的类创子类怎么创_使用Java创建自己的异常子类
  4. 全宇宙首本 VS Code 中文书,来了!
  5. JAVA Swing 组件演示***
  6. linux搭建mysql主从模式_Linux下搭建MySQL的主从复制(一)
  7. 设置好网络协议了为何网络还是不通_记一次菜鸟网络的面试经历
  8. MNIST数据集手写数字识别(一)
  9. mysql存过游标_mysql存储过程游标使用
  10. CHROME 拖动安装插件报错CRX_HEADER_INVALID的解决办法
  11. leetcode------Flatten Binary Tree to Linked List
  12. 漫谈Linux标准的文件系统(Ext2/Ext3/Ext4)
  13. 计算机的硬盘e找不到,计算机D驱动器E驱动器突然消失. 小编帮你找回了
  14. 数字图像处理实验六--图像复原
  15. 接收灵敏度dbm与W
  16. 单片机备用电池供电电路_单片机usb供电电路原理图详解
  17. uniapp重新渲染页面_uni-app里面使用uni.request请求并且渲染列表
  18. python网课 知乎_如何看待风变编程的 Python 网课
  19. 第二章开发环境搭建——第2节-高德开放平台
  20. 开淘宝店需要什么技巧

热门文章

  1. C语言 汉字ASCII转Unicode
  2. ansys linux运行_ANSYS|大型Linux计算机ANSYS运算要点
  3. Log4j(三)——Log4j配置文件位置详解
  4. java集合练习题_「集合练习题」Java集合框架篇-58-集合框架的几个练习题 - seo实验室...
  5. c语言编程串行静态数码显示实验,十天学会单片机和C语言编程-数码管动态扫描显示.ppt...
  6. mysql序列号生成软件_mysql 序列号生成器
  7. Codeforces Round #512 (Div. 2, based on Technocup 2019 Elimination Ro A. In Search of an Easy Proble
  8. 【学习笔记】matlab进行数字信号处理(一)生成信号及信号的时域频域分析
  9. (1.5万字图文)解读华为集成产品开发IPD之市场管理流程(MM流程)
  10. 如何抓取蓝光DVD暮光之城月食为DivX AVI格式