Web自动化
Java+Selenium+WebDriver的Web自动化
清冬暖雪
这个作者很懒,什么都没留下…
展开
-
java环境下对web界面元素每隔两秒进行查询
有时在做web自动化时,需要对界面元素进行持续查询,当查询到后才能进行后续操作,这时就需要写个专门的方法进行操作,我这边因为之前写过判断元素是否存在的方法,所以可以在该方法的基础上进行修改。原创 2024-09-10 14:56:35 · 158 阅读 · 1 评论 -
在java环境下判断某个元素是否存在
1、在做web功能自动化时,有时需要通过判断某个元素是否存在来决定下一步的操作,但如果直接通过如下命令来进行查找时,如果不存在程序会报错,无法达到想要的效果,而java中也没有可以直接调用的工具类,因此就需要我们自己来创建一个工具类进行调用。需要注意的是该方法是boolean类型,因此需要有boolean;2、如图所示,创建一个工具类,定义一个查找方法,如果能找到元素则返回true,找不到则返回false;3、查找元素是否存在的工具类完成后,在另一个类中通过实例化类,并调用方法进行引用,调用代码如下。原创 2024-08-14 09:11:00 · 339 阅读 · 0 评论 -
在TestNG框架下通过xml文件按照规定顺序运行两个类中的方法
3、JiaoXuan类中的方法如下,当我这边需要Boyue类中方法1到方法4运行完成之后再运行JiaoXuan类中的方法2,就需要在方法2中的Test标签中加上如下代码,issueData就是Boyue类中的方法4。1、如图所示,有两个方法类,我这边需要在类Boyue运行完成后,在运行JiaoXuan,或者当Boyue中某个方法运行完成后再运行JiaoXuan中的方法。6、运行顺序如下,按照设置的规则,在Boyue类中issueData方法运行完成后才运行JiaoXuan类中的issueData方法。原创 2024-08-06 13:39:00 · 286 阅读 · 0 评论 -
java-selenium 截取界面验证码图片并对图片文本进行识别
通过java-selenium-tess4j 4.5.4+Tesseract5.0.0 获取网站验证码图片并识别图片中的文本原创 2024-07-19 14:36:15 · 507 阅读 · 0 评论 -
Microsoft Visual C++ 2019等其他版本下载链接
需要下载什么版本之间点击链接即可下载,我这边需要下载2019版本 主要是解决在运行。该方法时出现‘找不到指定模块’的报错问题,可以在使用Tesseract;或者导入tess4j 4.5.4版本时使用。原创 2024-07-19 13:52:56 · 816 阅读 · 0 评论 -
判断非radio\checkbox 勾选框是否被勾选
contains("el-icon-success checked_icon checked") 查看获取class属性字符串内容是否包含el-icon-success checked_icon checked。如果包含则是true,不包含就是false.具体代码如下。3、如下图所示,当勾选框勾选时和未勾选时的对比看出该标签的class属性值是不同的,因此可以通过class值得变化来进行判断,2、如图所示,该勾选框并不是一个标准的勾选框元素,因此需要使用其他方式来判断,原创 2024-07-11 13:48:41 · 164 阅读 · 0 评论 -
selenium-java 通过配置xml文件并发运行类或者方法
6、配置标签,可以对类进行并发运行,如果是需要对类进行并发允许需要添加 thread-count="2" parallel="classes" ,parallel指定的是类;7、如果需要都类中的方法进行并发运行则需要在标签中将parallel="classes" 改为parallel="methods",指定的为方法。4、如图所示,通过配置文件 对类或者方法进行并发运行;8、如图所示xml文件配置后的运行结果如下。原创 2024-03-06 10:18:39 · 546 阅读 · 0 评论 -
XPath常用定位方式
2、平时可以通过浏览器右键进行获取定位方式,但是通常获取的元素无法准确定位或者太长这时就需要自己通过XPath语法来进行定位;代码为driver.findElemnet(by.xpath(".//*[@href='http://i.baidu.com']"));代码为driver.findElemnet(by.xpath("(.//*[text()='我的主页'])[2]"));代码为driver.findElemnet(by.xpath(".//*[text()='我的主页']"));原创 2024-01-24 16:35:24 · 2701 阅读 · 0 评论 -
selenium-java中切换iframe
2、当iframe中没有固定的name或者id时可以通过iframe角标进行切换,在浏览器通过ctrl+f快捷键,搜索标签框输入//iframe;来查看当前iframe是第几个来定位,代码如下。1、当iframe中有固定的name或者id时可以通过name和id进行切换,代码如下。注意:通过下标来定位时需要是同级别的,如果是frame中子级frame则不适用。原创 2024-01-17 16:18:15 · 721 阅读 · 0 评论 -
无界面自动化测试(IDEA+Java+Selenium+testng)(PhantomJS)
1、在pom.xml文件中需要使用低版本selenium-java依赖包,目前我使用的是4.13.0版本的所有在运行时铁定失败,目前除了降低selenium-java依赖包版本没有找到其它版本解决;可以使用2.53.1版本的依赖包;3、经过这两处修改即可完成web无界面运行自动化脚本了。不知道是否有大神知道高版本selenium-java无界面运行自动化脚本的办法,如果有的话还望赐教。上述连接是参考:现在如果按照如上链接进行操作大概率会失败,下面会针对如上链接的部分步骤做出修改。原创 2024-01-17 14:24:18 · 612 阅读 · 0 评论 -
selenium+java 通过classname定位时中间有空格解决办法
来进行定位界面会出现报错。1、如图所示,class="main-table-span title" 中有空格 如果直接通过。原创 2024-01-17 10:14:07 · 782 阅读 · 0 评论 -
Selenium+java在新建界面中点击上传按钮上传文件
2、在一开始中我定位的是大框<div>-<spen>标签结果无法上传文件,后来在网上搜索教程后才知道必须要在<input>中进行定位才行。1、如图所示html代码如下;手动操作则需要点击新增相关信息按钮上传文件,自动化则需要定位元素进行代码操作。于是通过如下代码即可上传文件。原创 2024-01-16 11:36:27 · 667 阅读 · 0 评论 -
谷歌浏览器安装不在默认安装位置Selenium无法打开解决方法
System.setProperty(,)中前面是启动谷歌浏览器的固定写法,后面是谷歌驱动文件的绝对路径。option.setBinary()中的路径是谷歌浏览器运行文件的路径;下面是结合我这边具体情况下写的代码。上面是我找的解决方案的链接。原创 2024-01-11 10:20:35 · 697 阅读 · 0 评论 -
Selenium-java获取标签内的文本、获取输入框中的文本、获取标签内的属性值
第三种才是获取输入框中输入值的正确写法。目前获取文本值有三种方式,如下图。第三种经常跟第一种搞混淆,原创 2024-01-04 15:18:00 · 881 阅读 · 0 评论 -
Selenium-java元素等待三种方式
第二种方式需要写在创建driver时的代码下面。第三种则是对每个定位元素进行配置。原创 2024-01-04 11:29:48 · 555 阅读 · 1 评论 -
Selenium-java 定位元素时切换iFrame时的方法
具体方法如下图所示,如果iFrame中嵌套多层iFrame需要逐层定位到需要的那一层iFrame,完成操作后,执行该代码:driver.switchTo() .defaultContent();是返回最顶部的frame。原创 2024-01-04 10:03:01 · 631 阅读 · 0 评论 -
selenium-java向系统数据列表中导入excel文件数据
7、目前上述方法是通过将excel列表中的数据复制到txt中才实现的,如果有大佬知道在selenium-java环境下,如何直接导入excel文件的数据还请赐教。5、将txt文件中的数据全部获取到后,在clos数组中存放的每一行数据是从0开始,例如想拿第一列的数据就是写clos[0];第二列的数据就是clos[1];6、将列表中需要添加的属性值用clos[]带代替,就可以实现在相关字段添加txt文件中对应的数据了,如下图。3、将txt文件配置好后,需要先将该模块列表数据自动化加入数据的代码写好。原创 2023-12-21 16:32:23 · 423 阅读 · 0 评论 -
Selenium-java,联级菜单选择
2、还有一种是非select标签形式的,目前我遇到的输入框就是intput标签,联级选项框在另一个div窗口中;1、联级菜单标签一般分为两种,一直是select标签形式,这种很简单,原创 2023-12-14 18:01:01 · 442 阅读 · 0 评论 -
driver.getCurrentUrl()方法无法获取跳转后的窗口链接
第一种方法 先通过 driver.getWindowHandle();方法获取新窗口的权柄,如何通过for if语句来将driver对象切换到新窗口中;将driver.getWindouwHandle()方法获取的页面权柄放在set集合中,然后移除原始窗口权柄,定位新窗口权柄,将driver指向新窗口。上面是通过for if语句来实现的 ,还有一种方法,同时也可以在切换回初始页面的driver,该方法是。原创 2023-12-13 16:22:22 · 441 阅读 · 0 评论 -
Chrome浏览器插件Ranorex Selocity
4、在谷歌浏览器中点击F12 定位所需要的元素位置后可以在Ranorex Seloctity tab页中查看可用的css和xpath路径,经过实验前三个可用。2、点击Products-Ranorex Selocity-Selenium CSS Selections.3、进入到下载链接 打开如下链接,点击添加至chrome即可使用,该连接在外网需要vpn才能打开下载。Ranorex Selocity谷歌浏览器插件可以用于web界面的元素定位。1、下载步骤,打开上面的链接。原创 2023-12-13 10:35:13 · 617 阅读 · 0 评论 -
selenium-java,web自动化出现element click intercepted,Unable to locate element报错。
2、如果元素定位没有问题,且该报错现象是偶发性即有时代码执行成功 有时失败就可以知道是元素点击事件时发生的错误,如果元素点击事件是直接用 元素定位变量.click();就会经常出现该报错,如下图代码。3、这时就需要实例化Actions对象,通过Actions类中action.moveToElement(元素定位变量)方法来执行元素点击操作,action.moveToElement(元素定位变量).click().perform();1,首先检查By.xpath定位元素位置是否正确;原创 2023-12-13 09:18:00 · 466 阅读 · 0 评论 -
获取元素存在Lise列表中并通过for if语句对列表中的特定元素进行操作
2、首先需要找到某个团队名称定位到该团队,通过xpath获取到定位路径://*[@id="app"]/div/div[1]/div/div[2]/div/div[1]/div/div[7];3、将上面的定位链接[7]删除。直接使用//*[@id="app"]/div/div[1]/div/div[2]/div/div[1]/div/div来进行定位来获取列表中的所有团队数据。1、如下图所示,在选择团队界面有一组团队数据,当我每次进入这个界面时都选择特定的团队进行点击时就需要for if语句结合使用。原创 2023-12-12 15:06:34 · 360 阅读 · 0 评论 -
IDEA新建Maven项目打开火狐、谷歌浏览器
注意事项:firefox56以下不需要安装webdriver驱动,firefox57 ( firefox47及以上版本 ) 最好下载最新的浏览器驱动,IEDriverServer的版本号和Selenium的版本号一定要一致。下载之后 将驱动文件放在某个文件夹下并且需要记录该文件路径后面需要用到这个火狐浏览器驱动文件的路径。2、创建Maven项目中需要在pom.xml文件中配置下载依赖包代码。4、打开第三步骤里面的链接 选择最新版本的驱动。在该链接下下载与浏览器对应版本的浏览器驱动。原创 2023-12-07 17:27:48 · 1108 阅读 · 0 评论