selenium归根溯“源” (一)

selenium - java版本源码

客户端文件

//client/src/com/thoughtworks/selenium/Selenium.java

包:com.thoughtworks.selenium;

公共接口:Selenium

定义一个运行Selenium命令的对象。

元素定位

元素定位告诉Selenium,命令指向哪一个HTML元素。

一个定位器的格式是:

locatorType=argument

我们支持如下的战略定位元素:

id、name、dom、xpath、link、css、ui

元素属性

元素属性能被定位器使用,用于改善一组已知的元素,现在他们只被用于name元素选择器

字符串匹配

各种匹配的语法被用于字符串匹配

glob、regexp、regexpi、exact

 

定义公共接口 Selenium

功能:定义RC的一些方法

 

 

//client/src/com/thoughtworks/selenium/BrowserConfigurationOptions.java

包:com.thoughtworks.selenium;

导入的包:java.util.HashMaap;java.util.Map;

公共类继承至java.lang.Object

功能:设置浏览器的session(RC方法的一部分)

 

 

//client/src/com/thoughtworks/selenium/BrowserConfigurationOptions.java/CommandProcessor.java

包:com.thoughtworks.selenium;

公共接口:CommandProcessor

功能:待补完

 

 

//client/src/com/thoughtworks/selenium/BrowserConfigurationOptions.java/DefaultRemoteCommand.java

包:com.thoughtworks.selenium;

导入包:org.openqa.selenium.net.Urls;

公共类:DefaultRemoteCommand

继承接口:RemoteCommand

要学习的java语法

StringBuffer -字符串变量

定义:StringBuffer sb = new StringBuffer("xxxx"); //变量字符串xxxx

方法:sb.append("yyy");//扩充字符串变为xxxxyyy

功能:过滤远程URL命令,转化为符合要求的格式

 

 

//client/src/com/thoughtworks/selenium/BrowserConfigurationOptions.java/DefaultSelenium.java

包:com.thoughtworks.selenium;

导入包:org.openqa.selenium.Capabilities;

公用类:DefaultSelenium

继承接口:Selenium

 

要学习的java语法

获取当前运行函数的方法名

StackTraceElement[] e  =Thread.currentThread().getStackTrace()

String className = null;
String methodName = null;

for (int i = 0; i < e.length; i++) {
        if (e[i].getClassName().equals("java.lang.Thread")
            || e[i].getMethodName().equals("showContextualBanner")) {
          continue;
        }
        className = e[i].getClassName();
        methodName = e[i].getMethodName();
        break;
      }//循环查找符合规则的线程类名或者方法名
//通常获得当前运行函数的方法名使用Thread.currentThread().getStackTrace()[2].getMethodName();   

 

功能:定义一些RC调用的方法(但未实现)

 

 

//client/src/com/thoughtworks/selenium/BrowserConfigurationOptions.java/HttpCommandProcessor.java

包:com.thoughtworks.selenium;

导入包:

com.google.common.base.Charsets;
com.google.common.collect.Lists;

org.openqa.selenium.net.Urls;

java.io.BufferedWriter;
java.io.IOException;
java.io.InputStreamReader;
java.io.OutputStreamWriter;
java.io.Reader;
java.io.Writer;
java.net.ConnectException;
java.net.HttpURLConnection;
java.net.URL;
java.text.NumberFormat;
java.text.ParseException;
java.util.Arrays;
java.util.List;

公共类:HttpCommandProcessor

继承接口:CommandProcessor

要学习的java语法

URL
String uu="http://www.baidu.com"
URL url = new URL(uu); //定义url
URLConnection uc = url.openConnection(); //建立连接
HttpURLConnection hc =(HttpURLConnection)uc;//转换成http连接
System.out.println(hc.getResponseCode());//返回返回值

功能:打开浏览器和对应测试连接

 

 

//client/src/com/thoughtworks/selenium/BrowserConfigurationOptions.java/RemoteCommand.java

包:com.thoughtworks.selenium;

公共接口:RemoteCommand

功能:定义发送至浏览器的url查询字符串

 

这种方式写起来太慢,之后查询也不方便,下一篇会精简的方式继续写……to be continue……

 

posted on 2013-03-05 10:57  choose.wang  阅读(546)  评论(0编辑  收藏  举报

导航