jmeter系列的文章结束,本来想趁热打铁顺别将Jmeter和接口测试介绍一下,但是感觉Jmeter时间太长了怕大家吃腻了,还有一个原因就是许多小伙伴们或者童鞋们私信问宏哥什么时候可以有java版的selenium,因为不会Python,或者现在大多数企业和公司还是把java奉在神坛上,所以宏哥打算就换个口味,介绍一下java+ selenium自动化测试。大致和前边的python+selenium自动化测试差不多。基于java和selenium做自动化测试,俗话说:工欲善其事必先利其器;没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个IDE来进行开发,这里通过详细的讲解,介绍怎么搭建java和selenium开发环境,并提供一个基本入门的代码,后续逐步提供系列实践文章。
2.1所需要安装的组件或者工具
1、宏哥的环境是Windows 10版本 64位系统(32位的同学自己想办法哦)

2、1.8.0_181 (64位)

3、Eclipse

4、Selenium for Java

5、Selenium 在不同浏览器上的driver插件,根据你的浏览器版本自行下载好。
2.2JDK安装与配置
1、下载jdk包,小编的是64位1.8版本,其它高级版本应该也是可以的。根据自己的系统选择对应版本
2、一路傻瓜式安装,注意安装路径不要有空格,不要有中文。jdk和jre不要放在一个文件夹下
3、设置三个环境变量,我的电脑>选择“属性”->“高级”->“环境变量”->“系统变量”->“新建”
(1)JAVA_HOME----D:\software\Java\jdk1.8.0_181” (根据自己安装路径填写)

(2)CLASSPATH--- .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;

(3)PATH-----;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
在path路径下加上面那两个,这里就不多说了
4、打开cmd验证是否安装成功,输入java -version,然后输入javac
能显示版本号和下面的帮助信息说明安装成功


2.3Eclipse的安装与设置
关于Eclipse的下载和设置,请参考宏哥的一篇文章:传送门。
2.4下载Selenium相关包和工具
Selenium下载的官网是http://www.seleniumhq.org/download/,点击下图中的3.4.0链接触发下载selenium-server-standalone-3.4.0.jar

3.5下载不同浏览器driver插件
浏览器对应的独立的官方驱动文件。如下表:
| Browser | Component |
| Chrome | |
| Internet Explorer | |
| Edge | |
| Firefox 47+ | |
| PhantomJS | |
| Opera | |
| Safari |
以上准备工作都做好后,到此,准备工作就做好了,下边宏哥就开始搭建环境。
java+ selenium自动化测试的搭建环境有两种方法下边听宏哥给你慢慢道来。
3.1方法一(宏哥不推荐)
添加多个jar包。这个方法比较繁琐,宏哥不推荐这种方法。
1、官方下载地址: Downloads | Selenium 如果官方地址无法访问自己可以网上搜一下应该可以 轻松的下载到,如果实在找不到可以微信搜索“北京宏哥”公众号,关注宏哥以后进入公众号发送“jar包”来获取下载方法。进入官网找到页面和java语言,点击后边的download,如下图所示:

2、解压上边下载的压缩包,解压后有六个文件,如下图所示:

3、 新建一 个Java Project把上面解压出来的文件, 都复制到新建的Project 目录下, 目录结构,如下图所示:

4、 添加build path, 项目目录右键 Build Path -> Config build path -> java build Path -> Libraries -> Add JARs
5、 把libs 文件夹下的jar包,全部添加上,再添加 client-combined-3.141.59.jar和client-combined-3.141.59-sources.jar。如下图所示:

6、添加成功后,目录结构,如下图所示:

3.2方法二(宏哥推荐)
添加一个jar包即可。这个方法比较简单是首选也是宏哥推荐的方法。
1、下载selenium-server-standalone.jar 。下载地址也在:官方下载地址: Downloads | Selenium 如果官方地址无法访问自己可以网上搜一下应该可以 轻松的下载到,如果实在找不到可以微信搜索“北京宏哥”公众号,关注宏哥以后进入公众号发送“jar包”来获取下载方法。

2、将selenium-server-standalone.jar 按照方法一添加jar的方法直接添加到java项目中就可以了,如下图所示:

4.1报错分析
细心认真的小伙伴或者童鞋们会发现,使用宏哥的方法一会报错如下:
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/collect/ImmutableMap
selenium + java + Windows + Eclipse 报错分析:
网上绝大多数的教程,按照方法一配置selenium 自动化测试环境,都是只让导入client-combined-3.141.59.jar和client-combined-3.141.59-sources.jar,没有说让导入lib 目录下的jar 包,宏哥也没仔细看,明明jar包都导入了啊,后实在看不出来原因,去看这个jar 包的时候,发现libs文件夹中这里面还有几个jar 包。好吧,导入就OK了。
好了,今天有关java+selenium自动化测试的环境搭建就分享到这里吧。灰常感谢你耐心的阅读!!!
很好奇,就使用rubyonrails自动化单元测试而言,你们正在做什么?您是否创建了一个脚本来在cron中运行rake作业并将结果邮寄给您?git中的预提交Hook?只是手动调用?我完全理解测试,但想知道在错误发生之前捕获错误的最佳实践是什么。让我们理所当然地认为测试本身是完美无缺的,并且可以正常工作。下一步是什么以确保他们在正确的时间将可能有害的结果传达给您? 最佳答案 不确定您到底想听什么,但是有几个级别的自动代码库控制:在处理某项功能时,您可以使用类似autotest的内容获得关于哪些有效,哪些无效的即时反馈。要确保您的提
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www
我只想对我一直在思考的这个问题有其他意见,例如我有classuser_controller和classuserclassUserattr_accessor:name,:usernameendclassUserController//dosomethingaboutanythingaboutusersend问题是我的User类中是否应该有逻辑user=User.newuser.do_something(user1)oritshouldbeuser_controller=UserController.newuser_controller.do_something(user1,user2)我
什么是ruby的rack或python的Java的wsgi?还有一个路由库。 最佳答案 来自Python标准PEP333:Bycontrast,althoughJavahasjustasmanywebapplicationframeworksavailable,Java's"servlet"APImakesitpossibleforapplicationswrittenwithanyJavawebapplicationframeworktoruninanywebserverthatsupportstheservletAPI.ht
这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/
HashMap中为什么引入红黑树,而不是AVL树呢1.概述开始学习这个知识点之前我们需要知道,在JDK1.8以及之前,针对HashMap有什么不同。JDK1.7的时候,HashMap的底层实现是数组+链表JDK1.8的时候,HashMap的底层实现是数组+链表+红黑树我们要思考一个问题,为什么要从链表转为红黑树呢。首先先让我们了解下链表有什么不好???2.链表上述的截图其实就是链表的结构,我们来看下链表的增删改查的时间复杂度增:因为链表不是线性结构,所以每次添加的时候,只需要移动一个节点,所以可以理解为复杂度是N(1)删:算法时间复杂度跟增保持一致查:既然是非线性结构,所以查询某一个节点的时候
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
本文主要介绍在使用Selenium进行自动化测试或者任务时,对于使用了iframe的页面,如何定位iframe中的元素文章目录场景描述解决方案具体代码场景描述当我们在使用Selenium进行自动化测试的时候,可能会遇到一些界面或者窗体是使用HTML的iframe标签进行承载的。对于iframe中的标签,如果直接查找是无法找到的,会抛出没有找到元素的异常。比如近在咫尺的例子就是,CSDN的登录窗体就是使用的iframe,大家可以尝试通过F12开发者模式查看到的tag_name,class_name,id或者xpath来定位中的页面元素,会抛出NoSuchElementException异常。解决
1.postman介绍Postman一款非常流行的API调试工具。其实,开发人员用的更多。因为测试人员做接口测试会有更多选择,例如Jmeter、soapUI等。不过,对于开发过程中去调试接口,Postman确实足够的简单方便,而且功能强大。2.下载安装官网地址:https://www.postman.com/下载完成后双击安装吧,安装过程极其简单,无需任何操作3.使用教程这里以百度为例,工具使用简单,填写URL地址即可发送请求,在下方查看响应结果和响应状态码常用方法都有支持请求方法:getpostputdeleteGet、Post、Put与Delete的作用get:请求方法一般是用于数据查询,