目录
一、基本语句
  1、循环控制(break,continue)
  3、字符的替换(replace,repalceFirst,replaceAll,regex)
  4、字符串的连接("+",append)
  5、字符串的截取和分割(substring,split)
  6、文件夹的创建与删除(mkdirs,delete)
  7、文件的读写(BufferedWrite,BufferedReader)
  8、系统时间的获取( ((Calendar.getInstance()).get(Calendar.YEAR) )
  9、时间格式的转换(SimpleDateFormat)
二、浏览器自动化操作(基于maven框架)
(一)对浏览器的基本操作
(二)网页元素的定位
  1、name定位
  2、class定位
  3、css定位
  4、ID定位
  5、tagName定位
  6、link,partialLink定位(a)
  7、xpath定位
(三)对鼠标的悬停操作(Actions)
(四)对悬浮框alert的操作(accept,dismiss)
(五)在网页框架上的切换(frame,defaultContent)
(六)网页跳转确认(assert,isDisplayed)
三、自动化功能的实现(基于TestNG)
  1、基础框架
  2、数据与编码分离的框架(excel,FeedTest)

一、基本语句

1、循环控制(break,continue)

break用于结束整个循环;

continue用于结束本次循环,以进行下一次循环。

2、字符及字符串的比较(compareTo,equals,compareToIgnoreCase,equalsIgnoreCase)

compareTo和compareToIgnoreCase结果返回的是int(两个字符串的第一个不同字符的ASCII差值);

equals和equalsIgonrCase结果返回的是bool值(true、false);

compareTo和equals区分大小写,-IgnoreCase忽略大小写。

示例:"abc".compareTo("bac");

"Abc".equalsIngoreCase("abc");

3、字符的替换(replace,repalceFirst,replaceAll,regex)

样:"Ab cdef ab".replace("ab","xy")

replace:将前边字符串中的ab替换为xy,区分大小写;

repalceFirst:将第一个ab替换为xy;

replaceAll:将所有的ab都替换为xy;

严格正则表达式:String regex="^[0-9]{4}$";表示只替换是且仅是连续4位的数字;

非严格的正则表达式:String regex="[0-9]{4}",只要存在的位连续的4位数字就进行替换;

例:"1324adb568872".repalce(regex,"xx");  //此表达式如果regex是严格的就只会替换1324,如果是非严格的就会替换1324和5688.

4、字符串的连接("+",append)

"+"可以将多个字符串连接,append是有字符串的末尾追加,不过从运行速度来说,append比“+”的效率高,速度快。

例:String str1="abc"+"bcd";

String str2="abc".append("bcd");

5、字符串的截取和分割(substring,split)

样:"abcdefg".substring(4);//结果:"efg",删截掉了前四个字符;

"abcdef".substring(0,4);//截取两个位置之间的字符;

"abd fghk".split(" ");//在空格处分割字段;?????

6、文件夹的创建与删除(mkdirs,delete)

String str="D:/practice1/practice2";

File file=new File(str);

file.mkdirs();//文件夹的创建;

file.delete();//删除;

String str2="D:/practice1/practice2/11.txt";

File file2=new File(str2);

file2.createNewFile();//创建文件。

file2.delete();//删除

7、文件的读写(BufferedWrite,BufferedReader)

BufferedWriter bw=new BufferedWriter(new FileWriter("filename"));//创建写入流。读取流的创建也一样,只是换用BufferedReader()。

bw.write("What a sunny day!");

bw.newLine();//换行

bw.close();//一般用完文件都要关闭。

判断文件是否存在:String str;  (str=br.readLine())!=null;

8、系统时间的获取( ((Calendar.getInstance()).get(Calendar.YEAR) )

Calendar cal=Calender.getInstance();

int year=cal.get(Calendar.YEAR);//当前年份

int month=cal.get(Calendar.MONTH)+1;//系统对月的统计是从0开始的,故要+1

int date=cal.get(Calendar.DATE)//日

int day1=cal.get(Calendar.DAY_OF_WEEK)//一周中的第几天

int day2=cal.get(Calendar.DAY_OF_MONTH)//一月中的第几天

int day3=cal.get(Calendar.DAY_OF_YEAR)//一年中的第几天

9、时间格式的转换(SimpleDateFormat)

long time=System.currentTimeMillis();//当前系统日期

String str1="MM/dd/yyyy";

String str2="yyyy/MM/dd";

String str3="yyyy/MM/dd HH:mm:ss";

String str4="yyyy/MM/dd HH:mm:SS";

String str5="yyyy/MM/dd HH:mm:s";//时间格式,H-24小时制,s-秒,S-毫秒

SimpleDateFormat form1=new SimpleDateFormat(str)

System.out.println(form1.format(time));//格式转换

二、浏览器自动化操作(基于maven框架)

(一)对浏览器的基本操作

System.setProperty("webdriver","C:\\PromgramFiles\浏览器物理位置\firefox.exe");//设置默认浏览器。

WebDriver driver=new FirefoxDriver();//打开浏览器

driver.manage().window().maximize();//最大化

driver.manage().timeOuts().ImplicitlyWait(5,TimeUnit.SECONDS);智能等待5秒

Thread.sleep(5000);//等待5秒

driver.get("http://网址");//打开网页

driver.close();//关闭当前浏览器

driver.quit();//关闭浏览器进程

(二)网页元素的定位

就火狐浏览器而言,大部分元素都可以用插件firebug找到,只有css类型需要用seleniunIDE进行查阅。

1、name定位

driver.findElement(By.name("xxx"));

2、class定位

driver.findElement(By.className("xxx"));

3、css定位

driver.findElement(By.cssSelector("input[type='button']));

4、ID定位

driver.findElement(By.id("xxx"));

5、tagName定位

driver.findElement(By.tagName("xxx"));

6、link,partialLink定位(a)

driver.findElenment(By.linkText("xxx"));//link需要链接后边的全部内容来进行定位,而partialLink只需要写入一部分就能进行查找定位。

7、xpath定位

driver.findElememt(By.xpath("/html/body/每一层路径/目标"));

driver.findElement(By.xpath("//input[@value='值']");

driver.findElement(By.xpath("//img[@alt='图片名']");//图片名为在网页上,按住alt并将鼠标移动到图上时所显示的名称。

driver.findElement(By.xpath("//img[contains(@alt,'xxx')]");

driver.findElement(By.xpath("//a[text()='xxx']");//对于链接的通过xpath定位不需要用@,而用示例所给格式。

(三)对鼠标的悬停操作(Actions)

Actions action=new Actions(driver);//建立对于浏览器的鼠标动作

action.moveToElement("位置").perform();//移动到某一位置,perform()用于确认。

action.clickAndHold("位置”).perform();//按住并移动

action.release("位置").perform();释放鼠标

(四)对悬浮框alert的操作(accept,dismiss)

driver.switchTo().alert().sendKeys("xxx");//转到悬浮框并写入

driver.swithcTo().alert().accept();//确认

driver.swithcTo().alert().dismiss();//取消

(五)在网页框架上的切换(frame,defaultContent)

driver.switchTo().frame("xxx");

driver.switchTo().defaultContent();//从一个框架向另一个框架移动一般都需要先跳转回这个主框defautlContent()

(六)网页跳转确认(assert,isDisplayed)

Assert.assertTrue(driver.findElement(By.name("xx")).isDisplayed();//确认跳转后页面的某一元素的出现。

三、自动化功能的实现(基于TestNG)

1、基础框架

 1 package testNG
 2 public class test{
 3     @Test(dataProvider="dp")//功能的主要实现结构
 4     public void mainn(String a,int b,Stringc){
 5
 6     }
 7     @DataProvider(name="dp")//数据提供者
 8     public Object[][] dp(){
 9     Object[][] abc={ {"ab","5","bc"},{"bc","3","xx"}};
10     }
11
12     @Test(dependsOnMethods="mainn")//接着mainn之后运行
13     public void add{
14
15     }
16 } 

2、数据与编码分离的框架(excel,FeedTest)

1 package testNG;
2 public class test  extends FeedTest //extends FeedTest为追加
3 {
4     @Test(dataProvider="feeder")//feeder为固定用语
5     @Souce("data/1.xls")//data为eclips内一个文件夹路径,1.xls为excel源文件,需要将它复制到eclips中此路径下才能生效。
6     public void mainn(String a,String b,String c,int x){
7
8     }
9 }

转载于:https://www.cnblogs.com/aland-1415/p/6551068.html

基于JAVA语言的selenium测试基础总结相关推荐

  1. 基于Java语言的Appium的使用讲义

    第一章 基于 Java 语言的 Appium 的使用 一. Appium 简介 1 什么是 Appium  是一个移动端的自动化测试框架,可用于测试原生应用,移动网页应用和混合型应用, 且是跨平台的 ...

  2. 基于Java语言构建区块链(一)—— 基本原型

    最终内容请以原文为准:https://wangwei.one/posts/df1... 引言 区块链技术是一项比人工智能更具革命性的技术,人工智能只是提高了人类的生产力,而区块链则将改变人类社会的生产 ...

  3. 基于Java语言构建区块链(四)—— 交易(UTXO)

    基于Java语言构建区块链(四)-- 交易(UTXO) 2018年03月11日 00:48:01 wangwei_hz 阅读数:909 标签: 区块链比特币 更多 个人分类: 区块链 文章的主要思想和 ...

  4. 基于Java语言构建区块链(五)—— 地址(钱包)

    基于Java语言构建区块链(五)-- 地址(钱包) 2018年03月25日 18:02:06 wangwei_hz 阅读数:1292更多 个人分类: 区块链bitcoin比特币 文章的主要思想和内容均 ...

  5. 基于Java语言构建区块链(六)—— 交易(Merkle Tree)

    基于Java语言构建区块链(六)-- 交易(Merkle Tree) 2018年04月16日 10:21:35 wangwei_hz 阅读数:480更多 个人分类: 区块链比特币bitcoin 最终内 ...

  6. 基于java语言轻量级实时风控引擎

    介绍: radar是一款基于java语言,使用Springboot + Mongodb + Groovy + Es等框架搭建的轻量级实时风控引擎,适用于反欺诈应用场景,极简的配置,真正做到了开箱即用. ...

  7. java 解析数据包_一种基于Java语言的网络通讯数据包解析方法与流程

    本发明涉及网络通讯领域,特别涉及一种基于Java语言的网络通讯数据包解析方法. 背景技术: 计算机系统和网络的大量普及使用使全球跨入了信息化时代.但是,正由于现代社会中几乎一切都在"计算机化 ...

  8. 区块链java语言,基于Java语言构建区块链(一)—— 基本原型

    引言 区块链技术是一项比人工智能更具革命性的技术,人工智能只是提高了人类的生产力,而区块链则将改变人类社会的生产关系,它将会颠覆我们人类社会现有的协作方式.了解和掌握区块链相关知识和技术,是我们每位开 ...

  9. 平面最近点对问题求解—基于Java语言

    平面最近点对问题求解-基于Java语言 1. 问题描述: 本问题来自<编程之美2.11-寻找最近点对>,文中给出了两种解法:暴力解法,分治解法.其中,暴力解法很简单,求出所有点之间的距离并 ...

  10. java写的股票技术分析_基于Java语言开发的个性化股票分析技术:量能突破模型(Energe-Break)...

    基于Java语言开发的个性化股票分析技术: 量能突破模型(Energe-Break) 一个用量能指标作为判定依据的条件分析模型,根据最近5天内是否有量能平台的突破以及涨跌幅的大小给每只股票评分评价,给 ...

最新文章

  1. 运维监控系统——配置服务监控项(Http,Nginx,MySQL)
  2. 2013cvpr的总结
  3. Python爬虫-04:贴吧爬虫以及GET和POST的区别
  4. openjdk sunjdk区别
  5. virtualbox4 剪贴板(共享粘贴板)失效之原因
  6. python远程控制电脑_python如何实现远程控制电脑(结合微信)
  7. BlackBerry 应用程序开发者指南 第一卷:基础--第8章 本地化应用程序
  8. FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,不用第三方SDK,自研推流拉流
  9. Ceph 撸源码系列(一):Ceph开源项目源代码的关键目录介绍
  10. 寻找百度图片搜索接口历程--one
  11. 实用Python识别图片上的数字(转载)
  12. python爬虫之Scrapy CrawlSpider说明——以阳光平台为例
  13. centos7.6 安装docker
  14. Backdrop CMS介绍
  15. 小程序代码托管无忧,云效 代码管理接入支付宝小程序平台
  16. 让我差点中计的电话诈骗套路!|凹凸日常
  17. (原创)关于中国象棋的
  18. linux下如何进行system(“pause”)同等操作
  19. html5-canvas(多模式彩色贪吃蛇)
  20. 总线/通信笔记3 —— PDO与SDO的区别

热门文章

  1. linux用户和组2
  2. spring 获取postman上传的二进制文件
  3. mysql 查询索引
  4. [软件架构]基于PluginRT的插件编程
  5. 金山安全联手方正科技 为用户提供最佳互联网安全环境
  6. [分享]如何开机后直接进入桌面
  7. windows下用navicat远程链接虚拟机Linux下MySQL数据库
  8. 年轻时不多闯闯,老了拿什么来吹
  9. Activity生命周期详解二
  10. 线性代数矩阵思维导图_斌叔2021考研数学公式:几种特殊形式的矩阵