一个简单的selenium实例(一)
1、selenium RC+Eclipse下载安装
java环境
官网下载地址http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html,本例中用的java SE1.8,安装在了D盘java文件夹下,注意环境变量的配置:新建变量JAVA_HOME=D:\Java\jdk1.8.0_11,在变量path中添 加%JAVA_HOME%\bin;。
验证java是否安装成功:在cmd中输入java -version,若出现以下java版本信息,安装成功

Selenium RC+Junit+Eclipse
Eclipse 官网下载地址http://www.eclipse.org/downloads/,注意操作系统(windows)和系统位数(32/64)的选择。高一些 的版本现在都自带junit插件,当然也可以在http://junit.org/上自行下载。
selenium RC下载地址http://download.csdn.net/detail/fanxinyuan/2695339,解压后可以看到多种语言的client driver和一个selenium server(如下图所示),我们在后面选择java语言的client driver。

2、selenium rc+junit环境的搭建
打开eclipse,单击File-new-java project,新建一个名为script1的java项目,刚开始该项目只包含基本的src文件夹和jre system library,可以在src下另外建三个包(package):com.util,com.script1,com.data,分别用来存放公用方法,测试脚本,测试数据。此外,还要把selenium rc和junit加载到项目中:
对于junit,右击项目script1-build path-add library,弹出以下对话框,选择junit-next-junit4-finish。

对于selenium rc,右击script1-properties,出现以下对话框,java buid path(左列)-libraries(右侧选项卡)-add external jars,在弹出的对话框中分别选择selenium-java-client-driver.jar,selenium-server.jar,selenium-java-client-driver-sources.jar,结果如下图所示
(对于rc也可以直接将整个文件夹或者library什么的加入,只要起作用就行)


3、脚本
a、用selenium IDE录制的方式来生成一个例子
ide是firefox浏览器的一个插件,需要先安装firefox,然后在火狐浏览器中输入地址https://addons.mozilla.org/en-US/firefox/addon/selenium-ide/或https://github.com/SeleniumHQ/selenium/wiki/SeIDEReleaseNotes下载安装selenium ide.
先打开selenium IDE,单击小红点打开脚本录制功能,然后在firefox中输入www.boobooke.com/,打开网站后再单击“论坛”。

录制界面如下:

单击文件-export test case as-java/junit4/Remote Control,命名为TestBoobooke.java。
b、在eclipse中使用脚本
将该文件复制粘贴到com.test中,会出现错误,此时应注意修改包名,在本例中改为package com.script1。
package com.script1; import com.thoughtworks.selenium.*;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
import java.util.regex.Pattern; public class TestBoobooke {
private Selenium selenium; @Before
public void setUp() throws Exception {
selenium = new DefaultSelenium("localhost", 4444, "*chrome", "http://www.boobooke.com/");
selenium.start();
} @Test
public void testBoobooke() throws Exception {
selenium.open("/html/home.html");
selenium.click("link=杩涘叆璁哄潧");
selenium.waitForPageToLoad("30000");
} @After
public void tearDown() throws Exception {
selenium.stop();
}
}
可以看出文件出现了乱码(link=杩涘叆璁哄潧),这是因为selenium IDE编码方式为utf-8:

eclipse ide的编码方式为GBK:

选中other,在下列框中选中utf-8,此时link=进入论坛,乱码消失,并将文件中的“*chrome”改为“*iexploreproxy”.
c、启动selenium server
打开cmd,进入文件夹D:\搜狗高速下载\下载\selenium-remote-control-1.0.3\selenium-java-client-driver-1.0.1(必须先进入selenium-server.jar所在路径),输入java -jar selenium-server.jar,出现下列界面成功启动server:

最后右击项目script1-run as-JUnit Test,运行成功。

一个简单的selenium实例(一)的更多相关文章
- Java Tread多线程(0)一个简单的多线程实例
		
作者 : 卿笃军 原文地址:http://blog.csdn.net/qingdujun/article/details/39341887 本文演示,一个简单的多线程实例,并简单分析一下线程. 编程多 ...
 - 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(三)(错误整理篇)
		
使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二) 以上两篇已经把流 ...
 - 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(二)(代码篇)
		
这篇是上一篇的延续: 用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一) 源代码在github上可以下载,地址:https://github.com/guoxia ...
 - 使用ssm(spring+springMVC+mybatis)创建一个简单的查询实例(一)
		
梳理下使用spring+springMVC+mybatis 整合后的一个简单实例:输入用户的 ID,之后显示用户的信息(此次由于篇幅问题,会分几次进行说明,此次是工程的创建,逆向生成文件以及这个简单查 ...
 - 使用JAVA实现的一个简单IOC注入实例
		
https://blog.csdn.net/echoshinian100/article/details/77977823 欲登高而望远,勿筑台于流沙 RSS订阅 原 使用JAVA实现的一个简单IOC ...
 - Qt5.9一个简单的多线程实例(类QThread)(第一种方法)
		
Qt开启多线程,主要用到类QThread.有两种方法,第一种用一个类继承QThread,然后重新改写虚函数run().当要开启新线程时,只需要实例该类,然后调用函数start(),就可以开启一条多线程 ...
 - 从一个简单的小实例分析JSP+Servelt与JSP+Struts2框架的区别
		
最近在学struts2,struts2相比以前的JSP+Servlet,在处理流程上的更简单,我们就一个小实例来具体分析一下. 实例内容如下: 实现一个简单的注册页面包括:用户名.密码.重复密码.年龄 ...
 - 一个简单的AJAX实例
		
创建一个简单的XMLHttpRequest,从一个TXT文件中返回数据. 来源于菜鸟教程 <!DOCTYPE html><html><head><meta c ...
 - C#一个简单下载程序实例(可用于更新)
		
运行时的界面 using System; using System.Collections.Generic; using System.ComponentModel; using System.Dat ...
 
随机推荐
- Android-----代码实现打开手机第三方应用APP
			
最近做一个项目,有一个需要启动第三方应用,和微信的地图查看差不多,需要启动高德,百度或腾讯地图来查看:特来分享,希望有所帮助. 案例效果如图: 要想启动第三方:首先要知道他的包名 一:高德 高德:co ...
 - C语言实现顺序表
			
C语言实现顺序表代码 文件SeqList.cpp #pragma warning(disable: 4715) #include"SeqList.h" void ShowSeqLi ...
 - LeetCode 525. Contiguous Array
			
525. Contiguous Array Add to List Description Submission Solutions Total Accepted: 2476 Total Submis ...
 - windows使用pip安装selenium报错问题
			
UnicodeDecodeError: 'ascii' codec can't decode byte 0xb9 in position 7: ordinal not in range(128) 这是 ...
 - 奔跑吧ansible笔记一(概述)
			
1.普通用户想使用sudo到root用户下执行一些有root权限的操作需要在被管理机器上做如下操作 1.切换到root用户下,怎么切换就不用说了吧,不会的自己百度去. 2.添加sudo文件的写权限,命 ...
 - iptables详解(8):iptables扩展模块之state扩展
			
当我们通过http的url访问某个网站的网页时,客户端向服务端的80端口发起请求,服务端再通过80端口响应我们的请求,于是,作为客户端,我们似乎应该理所应当的放行80端口,以便服务端回应我们的报文可以 ...
 - Inventory Update
			
依照一个存着新进货物的二维数组,更新存着现有库存(在 arr1 中)的二维数组. 如果货物已存在则更新数量 . 如果没有对应货物则把其加入到数组中,更新最新的数量. 返回当前的库存数组,且按货物名称的 ...
 - LeetCode OJ:Swap Nodes in Pairs(成对交换节点)
			
Given a linked list, swap every two adjacent nodes and return its head. For example,Given 1->2-&g ...
 - 关于Qt中使用线程的时候函数具体在哪个线程中运行的问题
			
在子线程中,run函数中以及其中调用的都在单独的子线程里面运行,但是其他的类似构造函数之流都是在主线程里面运行的,不要搞混了
 - An error report file with more information is saved as hs_err_pid2756.log
			
An error report file with more information is saved as hs_err_pid2756.log weblogic启服务时遇到的问题,重新部署都不行, ...