Selenium WebDriver自动化测试(基础篇):不得不掌握的Java基础

简介: 关于Selenium WebDriver自动化测试的Java基础篇,涵盖了Java的变量、数据类型、字符串操作、运算符、流程控制、面向对象编程、关键字用法、权限修饰符、异常处理和IO流等基础知识点,为进行自动化测试提供了必要的Java语言基础。

Java基础:磨刀不误砍柴工

变量/常量和数据类型、引用数据类型

变量:即在java程序运行中会发生改变的值;常量则相反。

基本数据类型,数值型:int\long\short\byte\float\double;字符型:char;布尔型:boolean

引用数据类型:类Class(Int\Long\Short\Byte\Float\Double\Character、Boolean)、接口interface、数组Array

两者的区别:基本数据类型在传值时

String字符串类型的相关方法

equals、equalsIgnoreCase、contains、length、charAt、indexOf、startsWith、endsWith、String().valueOf、toLowerCase\toUpperCase、replace、concat、trim

\==和equals的区别:前者比较的是两个变量的值,后者比较的是内容、内存地址;

concat和+拼接字符串的区别:前者只能接收字符串,后者左右可以为null,前者为空指针

运算符:赋值运算、逻辑运算、三目运算、算术运算、比较运算、位运算

算术运算:+、-、*、/、%;任何整数%取模不是0就是1;+还是字符串之间的连接符;++、--自增和自减

赋值运算符:=、+=、-=、*=、/=、%=;

比较运算符:运算结果不是true就是false;==、<、<=、>、>=;

逻辑运算符:&、|、^、!、&&、||;除了!以外的逻辑运算符,都是连接两个boolean类型的表达式,!表示取反;&两边为true则为true,反之false;|只要两边都是false才是false,反之true;^异或:两边结果一样则为false、反之则为true;&和&&区别,前者两边boolean表达式都参与计算,后者左边的boolean表达式为false则右边的boolean表达式就不执行;|和||一样,后者的左边boolean结果true,右边不参与。

位运算符:用于操作二进制位的运算符。

流程控制if、switch、while、do...while、for<高级for循环>;break、continue

判断(表达式)结果为true或者false时使用if;

如果判断变量(byte,char,short,int)为固定值时,使用switch,效率比较高;有一个默认default;

循环结构:for和while,如果需要定义变量控制循环次数,建议使用for,循环完毕,变量在内存中释放;

面向对象编程:类和对象、函数和返回值;构造函数;方法的重写、重载;继承extends、implements

主要是熟练使用,有面向对象编程的思想,了解它的几个特征:继承、多态、封装;

构造函数,每个类都会有一个默认的无参构造函数,在使用new关键字时会有体现;也可以定义参数或需要初始化某些参数或方法时使用;

方法的重载:同名不同参<参数个数、类型、顺序>;构造函数也可重载;

方法的重写:必须在继承的基础上,重写父类的方法,名称和返回值必须一致;

继承:子类可以继承父类所有非私有的属性和函数。

关键字:final、static、super、this、void、new

final:修饰的类不能被继承

super:调用的是父类的其他构造方法

this:调用的是本类》中的其他构造方法或变量

static:修饰成员变量和方法

void修饰的方法表示没有返回值

new用来创建一个类对象

  • Static关键字的作用范围

定义全局静态变量 :在全局变量前面加上关键字static,该全局变量变成了全局静态变量。

  • 全局静态变量有以下特点:

    1. 在全局数据区内分配内存
    2. 如果没有初始化,其默认值为0
    3. 该变量在本文件内从定义开始到文件结束可见

定义局部静态变量:在局部静态变量前面加上关键字static,该局部变量便成了静态局部变量。

  • 静态局部变量有以下特点:

    1. 该变量在全局数据区分配内存
    2. 如果不显示初始化,那么将被隐式初始化为0
    3. 它始终驻留在全局数据区,直到程序运行结束
    4. 其作用域为局部作用域,当定义它的函数或语句块结束时,其作用域随之结束。

定义静态方法:在方法的返回类型加上static关键字,方法即被定义成静态方法。

  • 静态方法有以下特点:

    • 静态方法只能在本源文件中使用由new产生的动态数据存放在堆区
    • 方法内部的变量存放在栈区。
    • 方法的变量一般会随着方法的退出而释放空间,
    • 静态数据(静态全局变量、函数内部的静态局部变量)存放在全局数据区。
    • 全局数据区的数据并不会因为方法的退出而释放空间。

权限修饰符:public、pravite、protected

public:可以被其他类所访问

Pravite:只能被自己反问和修改

protected:自身、子类及同一个包中类可以访问

异常处理:try...catch...finally;throw、throws

常见的异常处理场景:

a> 打开文件读写操作:text、excel等

b> Thread.sleep(1000)

c> 在操作文件的同时,只要创建了I/O对象,不管是打开还是保存失败,最后都建议在finally进行close();

d> 如果不需要处理异常的话,使用throw抛出异常

  1. IO流:文件读写、读取properties属性文件

    1. 按数据处理单位可以分:字节流、字符流;字节流可以处理一切文件,但是在有中文的文件中可能因为处理误差出现乱码,字符流完美的解决这一问题并且只能处理纯文本的文件;
    2. 按功能区分:节点流、处理流
    3. 按数据流方向:输入流、输出流;其含义是相对于程序而言,读取就是输入、写入就是输出,比较容易混淆
    4. java操作的配置文件类型:xml、properties、yaml(框架默认读取)
    5. I/O指的是Input/Output,相关对象是:
      1. InputStream与OutputStream是两个抽象类,是字节流的基类,所有具体的字节流实现类都是分别继承了这两个类
      2. Reader和Writer是两个抽象类,是字符流的基类,所有具体的字符流实现类都是分别继承了这两个类
      3. InputStreamReader/OutputStreamWriter(处理/字符流)、
      4. FileInputStream/FileOutputStream(节点/字节流)、
      5. BufferedInputStream、BufferedOutputStream(缓冲字节流)
      6. BufferedReader、BufferedWriter(字符缓冲流)
      7. OutputStreamWriter:Java提供了FileWriter和FileReader简化字符流的读写,new FileWriter等同于new OutputStreamWriter(new FileOutputStream(file, true))
    6. 在目前测试中,使用读取properties配置内容的方法是字符流
String path = System.getProperty("user.dir")+"/src/test/resources/test.properties";
Properties prop = new Properties ();
FileInputStream fs = new FileInputStream(path);
prop.load(fs);
System.out.println(prop.getProperty("key")); //properties文件的值是Key=Value的形式
相关文章
|
27天前
|
数据采集 测试技术 Python
自动化淘宝秒杀:使用Selenium WebDriver的实战指南
本文详细介绍了如何利用Selenium WebDriver自动化淘宝秒杀操作,包括环境配置、代码实现及注意事项,旨在帮助读者提升秒杀成功率,同时提醒合理使用以遵守平台规则。
78 8
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
134 5
|
2月前
|
数据采集 存储 JavaScript
自动化数据处理:使用Selenium与Excel打造的数据爬取管道
本文介绍了一种使用Selenium和Excel结合代理IP技术从WIPO品牌数据库(branddb.wipo.int)自动化爬取专利信息的方法。通过Selenium模拟用户操作,处理JavaScript动态加载页面,利用代理IP避免IP封禁,确保数据爬取稳定性和隐私性。爬取的数据将存储在Excel中,便于后续分析。此外,文章还详细介绍了Selenium的基本设置、代理IP配置及使用技巧,并探讨了未来可能采用的更多防反爬策略,以提升爬虫效率和稳定性。
130 4
|
7天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
52 19
Selenium IDE:Web自动化测试的得力助手
|
9天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
82 17
Selenium:强大的 Web 自动化测试工具
|
2月前
|
Web App开发 Java
使用java操作浏览器的工具selenium-java和webdriver下载地址
【10月更文挑战第12天】Selenium-java依赖包用于自动化Web测试,版本为3.141.59。ChromeDriver和EdgeDriver分别用于控制Chrome和Edge浏览器,需确保版本与浏览器匹配。示例代码展示了如何使用Selenium-java模拟登录CSDN,包括设置驱动路径、添加Cookies和获取页面源码。
129 6
|
2月前
|
JavaScript 前端开发 测试技术
精通Selenium:从基础到高级的网页自动化测试策略
【10月更文挑战第6天】随着Web应用变得越来越复杂,手动进行功能和兼容性测试变得既耗时又容易出错。自动化测试因此成为了现代软件开发不可或缺的一部分。Selenium是一个强大的工具集,它支持多种编程语言(包括Python),允许开发者编写脚本来模拟用户与Web页面的交互。本文将带领读者从Selenium的基础知识出发,逐步深入到高级的应用场景,通过丰富的代码示例来展示如何高效地进行网页自动化测试。
487 5
|
1月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
40 0
|
2月前
|
Web App开发 缓存 Linux
高效Selenium测试技巧:轻松控制已开启的浏览器
【10月更文挑战第13天】在进行Selenium测试时,通常会启动新浏览器实例,但有时需要控制已开启的浏览器,以节省时间并更真实地模拟用户行为。这可通过设置Chrome为可远程控制并使用`Remote WebDriver`连接实现。需在启动Chrome时添加`--remote-debugging-port`参数,并通过Python脚本中的`webdriver.Remote`连接至指定端口。此外,还可利用会话ID(Session ID)重新连接浏览器,提高测试灵活性。需要注意浏览器版本兼容性及元素定位稳定性等问题,确保测试准确性和一致性。
377 1
|
2月前
|
Web App开发 Java 测试技术
一、自动化:web自动化。Selenium 入门指南:从安装到实践
一、自动化:web自动化。Selenium 入门指南:从安装到实践
54 0