当前位置: 首页 > 编程日记 > 正文

自动化测试selenium+java学习笔记

//driver后面接
get(String url)                     访问指定url页面 
getCurrentUrl()                   获取当前页面的url地址 
getTitle()                              获取当前页面的标题
getPageSource()                 获取当前页面源代码
quit()                                    关闭驱动对象以及所有相关的窗口
close()                                   关闭当前窗口


manage()                              此方法可以获取Options--浏览器菜单操作对象
例如:
driver.manage().window().maximize();    //最大化窗口

navigate对象
//获取navigate对象
Navigation navigation = driver.navigate();

//访问指定url地址
navigation.to(url);

//刷新当前页面
navigation.refresh();

//浏览器回退操作
navigation.back();

//浏览器前进操作
navigation.forward();


//硬性等待
Thread.sleep(3000);

//隐式等待:在设置的超时时间范围内不断查找元素,直到找到元素或者超时
driver.manage.timeouts().implicitlyWait(时间,单位TimeUnit.SECONDS);

//显示等待:用来等待某个条件发生后再继续执行后续代码(如找到元素、元素可点击、元素已显示等)
WebDriverWait wait = new WebDriverWait(driver,超时时间);
WebElement element = wait.until(expectCondition.方法(BY.    ));
常见方法:
visibilityOfElementLocated(By locator)                          页面元素在页面存在并且可见
elementTOBeClickable(By locator)                                 页面元素是否在页面上可用和可被单击
elementToBeSelected(WebElement element)               页面元素处于被选中状态
textToBePresentInElement(By locator)                           在页面元素中是否包含特定的文本
presenceOfElementLocated(By locator)                         页面元素在页面中存在

//切换到alert弹窗
Alert alert = driver.switchTo().alert();
//alert弹窗确认取消
alert.accept();
alert.dismiss();
//获得alert弹窗信息(要输出这个语句才能看到获取到的信息)
alert.getText()


//切换到confirm弹窗
Alert alert = driver.switchTo().alert();
//confirm弹窗确认取消
alert.accept();
alert.dismiss();
//获得confirm弹窗信息(要输出这个语句才能看到获取到的信息)
alert.getText()


//4种iframe切换
driver.switchTo().frame(index);
driver.switchTo().frame(id);
driver.switchTo().frame(name);
driver.switchTo().frame(WebElement);

//切换之后,如果要回到默认内容页面
driver.switchTo().defaultContent();


//切换窗口:传入要操作窗口的name或者句柄handle
driver.switchTo.window(name或者Handle);


//获取当前窗口句柄
driver.getWindowHandle();
//获取所有窗口的句柄
driver.getWindowHandles();

//select下拉框
如果页面元素是一个下拉框,我们可以将此web元素封装为select对象
WebElement element = chromeDriver.findElement(By.)
Select select = new Select(element);

//获取所有选项
select.getOptions();

//根据索引选中对应的元素
select.selectByIndex(index);

//选择指定value值对应的选项
select.selectByValue(value);

//选中文本值对应的选项
select.selectByVisibleText(text);


//特殊元素定位与操作-时间日期控件

//如果控件没有限制手动输入,则直接调用sendKeys方法写入时间数据

//控件有限制输入,则可以执行一段js来改变元素的value属性值
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("...")

//鼠标操作最后要用perform();才能运行
实例化actions对象
Actions actions = new Actions(chromeDriver);
actions.一系列操作.perform();
例如:
WebElement sourceElement = chromeDriver.findElement(By.id("treeDemo_2_span"));
WebElement targetElement = chromeDriver.findElement(By.id("treeDemo_3_span")) ;
Actions actions = new Actions(chromeDriver);
actions.clickAndHold(sourceElement).moveToElement(targetElement).release().build().perform();

//特殊元素定位与操作-文件上传

//类似于下面,使用sendKeys写入文件的路径
<input type="file" id="fu" value="选择文件">

//类似于下面,使用sendKeys写入文件的路径<input type="file" id="fu" value="选择文件">
如果文件上传不是input元素,而是使用的第三方的控件。并且不是input元素,那么这种情况就很棘手了,必须要使用一些第三方的工具,比如autoit等来完成。

相关文章:

JS实现继承的几种方法

父类&#xff1a; // 定义一个动物的类 function Animal (name) {// 属性this.name name || Animal;// 实例方法this.sleep function(){console.log(this.name 正在睡午觉&#xff01;);} } // 原型方法 Animal.prototype.eat function(food) {console.log(this.name 正在…

【怎样写代码】复杂对象的组装与创建 -- 建造者模式(四):扩展案例

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

接口测试和单元测试的区别

1、单元测试注重代码逻辑&#xff0c;接口测试注重业务逻辑&#xff1b; 2、单元测试的粒度最小&#xff0c;是测试最小独立的单元模块&#xff08;不依赖其他模块&#xff09;&#xff1b;接口测试不是&#xff0c;会覆盖很多&#xff1b; 3、单元测试是白盒测试&#xff0c…

改善FLEX/FLASH性能的小技巧(转)

使用下面的几个改善性能的技巧&#xff0c;如果你使用Flex Builder&#xff0c;那么可以使用调试窗口查看你的程序中关键的几步创建对象和内存回收的情况。有时细小的调整会造成很大的不同。下面是一小部分能够改善你的程序性能的做法&#xff1a;1)如果不知道一个对象的类型&a…

机器学习算法(3:决策树算法)

一、决策树简介 决策树是附加概率结果的一个树状的决策图&#xff0c;是直观的运用统计概率分析的图法。机器学习中决策树是一个预测模型&#xff0c;它表示对象属性和对象值之间的一种映射&#xff0c;一颗决策树是一棵有向无环树&#xff0c;它由若干个节点、分支、分裂谓词以…

【怎样写代码】复杂对象的组装与创建 -- 建造者模式(三):建造者模式

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

Junit单元测试需要知道的一些知识点

Junit单元测试框架—基于java语言对的主流单元测试框架 beforeClass—位于数据准备前期或者其他前期准备&#xff08;测试类调用前&#xff09; --用于提取代码中的共用部分减少冗余&#xff0c;只能声明注解一次 --必须在public static void,方法名随意&#xff0c;&#x…

关闭Windows 2000/XP/2003默认共享

Windows 2000/XP/2003版本的操作系统提供了默认共享功能&#xff0c;这些默认的共享都有“$”标志&#xff0c;意为隐含的&#xff0c;包括所有的逻辑盘&#xff08;C$&#xff0c;D$&#xff0c;E$……&#xff09;和系统目录Winnt或Windows&#xff08;admin$&#xff09;。 …

MySQL 代码结构与基本流程

一、MySQL基本架构二、MySQL目录结构build: 内含有各个平台、各种编译器下进行编译的脚本。如compile-pentium-debug表示在pentium架构上进行调试编译的脚本。client: 客户端工具&#xff0c;如mysql,mysqladmin之类。cmd-line-utils: readline,libedit工具。config: 给aclocal…

【怎样写代码】复杂对象的组装与创建 -- 建造者模式(五):关于Director的进一步讨论

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

如何进行app的兼容性测试?需要考虑哪些方面?

考虑的方面&#xff1a; 1. 系统 a. Android 1). 官方版:官方发型的版本 数据来源&#xff1a;https://mta.qq.com/mta/data/device/os 2). 定制版&#xff1a;华为、魅族、小米、三星。 (前三&#xff1a;华为、oppo、vivo) 数据来源&#xff1a;https://mta.qq.com/mta…

.NET Framework 4.0的新特性

本文将揭示.NET 4.0中的3个新特性&#xff1a;图表控件、SEO支持以及ASP.NET 4可扩展的输出缓存。 图表控件 微软向开发者提供了大量可免费下载的图表控件&#xff0c;可以在.NET 3.5 ASP.NET或WinForms项目中使用这些控件。要想在Visual Studio 2008中使用这些控件则需要安装一…

【怎样写代码】确保对象的唯一性 -- 单例模式(一):问题案例

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

《Kinect应用开发实战:用最自然的方式与机器对话》一3.4 深度图像成像原理...

3.4 深度图像成像原理 Kinect有发射、捕捉、计算视觉重现的类似过程。严格说来&#xff0c;Kinect的“深度眼睛”是由一个红外投影机和红外摄像头组合而成的&#xff0c;投影和接收互为重叠&#xff0c;如图3-27所示。 可以说&#xff0c;Kinect的成功也在于其能廉价而有效地捕…

UI设计不够高端?这5个小技巧可以试试

UI培训设计是对软件的人机交互、操作逻辑、界面美观度的整体设计。好的UI设计不仅要让软件变得漂亮舒适&#xff0c;还要充分考虑到用户的操作问题。 从事UI设计的朋友们&#xff0c;肯定知道我们在做UI设计时&#xff0c;其实是可以通过一些小技巧来帮我们设计的界面更加的漂…

Apache学习路线

参考资料&#xff1a; 1、《Apache源代码全景分析》 2、《鸟哥服务器架设篇》 一、不同的开发人员应该关注的知识点 Apache管理员 配置文件、配置指令 模块开发人员 全部内容 服务器开发人员 MPM并发处理框架 普通人员 …

大火的Apache Spark也有诸多不完美

现在如果你想要选择一个解决方案来处理企业中的大数据并不是难事&#xff0c;毕竟有很多数据处理框架可以任君选择&#xff0c;如Apache Samza&#xff0c;Apache Storm 、Apache Spark等等。Apache Spark应该是2016年风头最劲的数据处理框架&#xff0c;它在数据的批处理和实时…

【怎样写代码】确保对象的唯一性 -- 单例模式(二):解决方案

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

零基础如何学习java技术?

想要学习java技术&#xff0c;担心自己是零基础学不会?最近有很多同学会问到这样的问题&#xff0c;千锋教育小编告诉你&#xff0c;零基础是可以学习java技术的&#xff0c;但是要去正规的java培训机构学习&#xff0c;下面来看看详细的介绍。 零基础如何学习java技术?我们…

Rank() over()的用法

Rank() over()的用法 创建一个test表&#xff0c;并插入6条数据。CREATE TABLE test (a INT,b INT,c CHAR ) INSERT INTO test VALUES(1,3,E) INSERT INTO test VALUES(2,4,A) INSERT INTO test VALUES(3,2,D) INSERT INTO test VALUES(3,5,B) INSERT INTO test VALUES(4,2,C) …

5G将成开启物联网时代的金钥匙

物联网其实并非新鲜事物&#xff0c;在互联网兴起之初&#xff0c;就有人提出了万物皆可通过网络互联&#xff0c;这被认为是物联网最早的定义。其实早在1995年比尔盖茨在其书《未来之路》也提到了物联网&#xff0c;当初并未引起重视。如今&#xff0c;随着互联网与先进通信技…

【怎样写代码】确保对象的唯一性 -- 单例模式(三):单例模式

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

学习Python有什么优势?

学习Python的人越来越多&#xff0c;很多人就想知道&#xff0c;编程语言有那么多种&#xff0c;学习Python有什么优势?为什么这么多人会选择学习Python技术?今天我们就来聊一聊Python语言。 学习Python有什么优势? 入手快。Python语言相对于其他编程语言来说&am…

取消水晶报表的数据库登录框 分享

这两天在和斌做后台中的报表&#xff0c;暂定使用水晶报表&#xff0c;目前还只是处于对水晶报表的初级应用阶段&#xff0c;也就是知道如何 汇个总、写个函数、传个参数。 问题总是层出不穷&#xff0c;在最后整合报表&#xff0c;进行报表显示测试的时候&#xff0c;发现每次…

有光照就能上网 0.2秒即可下载一部高清电影

再也不用费尽心思询问 WIFI 密码了&#xff0c;以后&#xff0c;哪里有光照&#xff0c;哪里就可以上网。中国“可见光通信系统关键技术研究”近日取得重大突破&#xff0c;实时通信速率提升至 50Gbps&#xff0c;也就是说&#xff1a; 0.2 秒即可完成一部高清电影的下载。 有光…

【怎样写代码】确保对象的唯一性 -- 单例模式(四):饿汉式单例类与懒汉式单例类的讨论

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

学Java需要学哪些书?

java技术所要学到的东西是很多的&#xff0c;只要入了这一行&#xff0c;学习是不能停止的&#xff0c;工作节奏在加快&#xff0c;新知识也源源不断&#xff0c;学习的最好途径就是看书&#xff0c;小编给大家推荐这几本java方面的书&#xff0c;搭配学习课程&#xff0c;让学…

【怎样写代码】确保对象的唯一性 -- 单例模式(五):一种更好的单例实现方法(静态内部类)

如果喜欢这里的内容&#xff0c;你能够给我最大的帮助就是转发&#xff0c;告诉你的朋友&#xff0c;鼓励他们一起来学习。 If you like the content here, you can give me the greatest help is forwarding, tell your friends, encourage them to learn together.

郭为:大数据时代的企业管理挑战

互联网时代&#xff0c;创新使得财富积累的速度前所未有的快&#xff0c;贫富不均也前所未有地分化。这个时代&#xff0c;世界的竞争变成人与人的竞争&#xff0c;人与人的竞争就是智慧的竞争&#xff0c;就是人的创新能力的竞争。如何才能提高人的竞争力&#xff0c;是管理科…

如何挑选靠谱的Java培训机构

想要学习java技术的人越来越多&#xff0c;市面上出现的java培训机构也越来越多&#xff0c;很多人都想找一个靠谱的java培训机构&#xff0c;那么到底该如何挑选靠谱的Java培训机构呢?看看下面小编为大家做的详细介绍吧。 如何挑选靠谱的Java培训机构? 首先挑选java培训机…