Web端自动化实用小技巧(java+selenium)

前言

提示:web自动化中经常会遇到一些难搞诡异的问题,本文中总结了一些自动化常常会遇到小问题


 

  1. 复选框被div层遮挡

 

错误描述

Other element would receive the click: <div class="el-loading-mask el-loading-fade-enter-active el-loading-fade-enter-to" style="">

 

解决办法

  •  

 

问题解决源链接:

转载:https://blog.csdn.net/fengqiaoxian/article/details/81104173

 

2.元素未被定位到

 

FAILED: ReScreen
        测试新增初筛是否成功
org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.xpath: //input[@id='leftEarDegreeDiv']/label[1] (tried for 10 second(s) with 500 MILLISECONDS interval)
at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:82)
at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:231)
at page.InitialHearingDiagnosis_PO.clickrightAcou(InitialHearingDiagnosis_PO.java:58)
at testCase.

 

隐试等待为失败,即10秒钟后未出现,就是元素未定位到,说明元素发生改变,当前方式已经不能定位

3.点击查询信息,出现数据跟预期不一致

搜索条件查询确认后,点击详情前,停止一秒,在点击详情,

  • 获取页面元素的值时出现,页面元素先出现,数据加载慢后出现,导致取值为空

在等待页面元素出现后,强制等待1秒钟,等数据出现

4.时间控件填入时,为不可填写,只能为选择,自动需要强制把控件重置为可写

private static By birthday = By.xpath("//input[@name='baby.birthDay']/../input");

JavascriptExecutor removeAttribute = (JavascriptExecutor) my_dr;

WebElement ele = my_dr.findElement(birthday);

removeAttribute.executeScript("arguments[0].removeAttribute('readonly')", ele);

5.下拉菜单内容位置会变换,用jS强制点击

WebElement ele = myDriver.findElement(By.xpath("//span[contains(text(),'稠城街道')]"));

JavascriptExecutor executor = (JavascriptExecutor)myDriver;

executor.executeScript("arguments[0].click();", ele);

6.自动化定位vue-treeselect 控件

  1. 先点开vue-treeselect 控件

//选择接诊机构

Private static By org = By.xpath("//label[@for='receiveOrgName']/../div/div/div/div/div[2]/input");

wait.until(ExpectedConditions.presenceOfElementLocated(org));

my_dr.findElement(org).click();

 

  1. 获取查询vue-treeselect加载的内容

String aa=my_dr.findElement(org1).getAttribute("innerHTML");

 

  1. 根据加载的内容,查看vue-treeselect 加载的内容,点击对应树菜单

private static By org2=By.xpath("//label[contains(text(),'息烽县卫生和计划生育局')]/../../div");

private static By org3=By.xpath("//label[contains(text(),'息烽县中医医院')]"); my_dr.findElement(org2).click();

my_dr.findElement(org3).click();

完整代码

 

 

7.上传图片

由于上传图片,需要上传图片的绝对路径

 

1.获取绝对路径公共方法

//根据相对路径获取文件绝对路径

public String retunimg(String url){

String path=this.getClass().getClassLoader().getResource(url).getPath();

     

      String filepth=path.substring(1);

      System.out.println(path);

return filepth;

}

2.页面元素选择上传的信息

 

3.用例中调用上传信息

//上传图片

      cmp.uploadImg1(my_dr, wait, pc.retunimg("img/report_1.png"));

 

 

 

 

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
基于JavaSeleniumWeb UI自动化测试框架是一种自动化测试工具,可以用于测试Web界面的功能和用户交互。以下是该框架的一些关键特性和优势。 1. 支持多浏览器和平台:这个框架可以在各种主流浏览器(如Chrome、Firefox、Safari等)和操作系统(如Windows、Mac、Linux等)上运行,确保网站在不同环境下的兼容性。 2. 灵活的对象识别:通过使用Selenium的定位策略(如ID、CSS选择器、XPath等),该框架可以准确地识别页面上的元素,从而使测试用例的编写更加简单和可靠。 3. 数据驱动测试:该框架支持数据驱动测试,可以从外部源(例如Excel、CSV等)中加载测试数据,并对每个数据组合执行相同的测试用例,从而提高测试效率和可重复性。 4. 测试报告和日志:这个框架提供了详细的测试报告和日志记录功能。测试报告会提供关键的测试执行结果,如成功率、失败率和跳过率,并展示每个用例的执行状态。日志记录则可以帮助开发人员在调试期间查找问题和进行错误分析。 5. 高可扩展性:该框架可以根据项目需要进行定制和扩展。开发人员可以编写自定义函数和库,以便进行特定的测试操作和验证。 总之,基于JavaSeleniumWeb UI自动化测试框架提供了一种可靠、高效和可扩展的方式来测试Web界面。它可以帮助团队快速检测和修复潜在的缺陷,提高软件质量和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值