在做界面自动化用例实现的过程中,经常会碰到鼠标点击不生效、滑块验证问题等,先将一些我自己用到的解决方法总结如下:

1、 鼠标单击事件

1.1 直接click

**.click()

1.2 先move,再click

鼠标单击,页面跳转

WebElement button=driver.findElement(By.xpath("//div[@id='4d91d1045aad48c4af47657c40d34f8d']/span[4]"));

Actions acttion=new Actions(driver);

acttion.moveToElement(button).perform();

Thread.sleep(1000);

acttion.click(button).perform();

1.3 通过javascript语句执行

WebElement eAction = driver.findElement(By.xpath(getStringByKeyName("MenuAction")));

((JavascriptExecutor)driver).executeScript("arguments[0].click();", eAction);

1.4 通过ENTER键代替click

WebElement element = driver.findElement(By.xpath("//a[@class='return']"));

Actions action = new Actions(driver);

action.contextClick(element).perform();

element.sendKeys(Keys.ESCAPE);

element.sendKeys(Keys.ENTER);

2、查看指定元素属性

System.out.println(obj_temp.isDisplayed());

3、上传一个文件附件

通过sendKeys方法上传一个文件附件

@FindBy(id = "btn_file")

public WebElement btn_upfile;//上传附件

serviceregister.btn_upfile.sendKeys("D:\\auto_test\\a.docx");

serviceregister.btn_nextBtn.click();

注意:该上传附件按钮在页面的javascript定义图示如下

4、 http请求服务接口模式

(1)post方式

……

os.write(req);

os.flush();

bis = new BufferedInputStream(conn.getInputStream());

int len = -1;

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] cache = new byte[8 * 1024];

while ((len = bis.read(cache)) != -1) {

baos.write(cache, 0, len);

}

baos.flush();

byte[] temp = baos.toByteArray();

baos.close();

……

(2)get方式

conn.setDoInput(true);

conn.setRequestMethod("GET");

conn.setReadTimeout(readTimeout);

InputStream is = conn.getInputStream();

ByteArrayOutputStream baos = new ByteArrayOutputStream();

byte[] buf = new byte[2048];

int len = -1;

while ((len = is.read(buf)) != -1) {

baos.write(buf, 0, len);

}

is.close();

conn.disconnect();

conn=null;

baos.flush();

byte[] temp = baos.toByteArray();

baos.close();

5、登录滑块验证

int moveX =99;//移动位置

/*下面获取的滑块整体元素,目的获得总长度*/

WebElement element = driver.findElement(By.id("slider"));

Point location = element.getLocation();

element.getSize();

//执行时,这里的元素为滑块的可移动的元素

Actions action_1= new Actions(driver);

action_1.dragAndDropBy(btn_slider_drag, location.x+moveX,location.y).perform();

即绿框标注的元素为element,红框标注的元素为btn_slider_drag。

move语句java_java自动化代码优化相关推荐

  1. move语句java_java 程序里 有几个地方不明白 1、angle 方法 前两个if 语句 2、movex 、movey 方法作用 3、rotate 方法...

    方法部分:publicclassPoint{privatedoublexpose,ypose;publicPoint(){super();//TODOAuto-generatedconstructor ...

  2. ABAP性能优化之正确使用”move” 语句

    建议使用move语句取代 move-corresponding 语句, 因为 move-corresponding的执行速度很慢. 应该尽量一次性搬移内表的整条记录,而不是一个字段一个字段的取值. m ...

  3. C++11右值引用和std::move语句实例解析

    关键字:C++11,右值引用,rvalue,std::move,VS 2015 OS:Windows 10 右值引用(及其支持的Move语意和完美转发)是C++0x加入的最重大语言特性之一.从实践角度 ...

  4. C++移动构造函数以及move语句简单介绍

    转自https://www.cnblogs.com/qingergege/p/7607089.html 首先看一个小例子: #include <iostream> #include < ...

  5. move std 函数 示例_C++11右值引用和std::move语句实例解析(推荐)

    右值引用(及其支持的Move语意和完美转发)是C++0x将要加入的最重大语言特性之一.从实践角度讲,它能够完美解决C++中长久以来为人所诟病的临时对象效率问题.从语言本身讲,它健全了C++中的引用类型 ...

  6. 【C++】探讨std::move()作用,查到的《C++11右值引用和std::move语句实例解析》

    原文出自https://www.cnblogs.com/ldlchina/p/6608154.html 感谢原创作者,以下为原文. 右值引用(及其支持的Move语意和完美转发)是C++0x加入的最重大 ...

  7. move语句java_Oracle中的move命令

    Oracle中的move命令 从8i开始,oracle开始提供Move的命令.我们通常使用这个命令,将一个table segment从一个tablespace移动到另一个tablespace.Move ...

  8. if else if else语句格式_if-else代码优化的八种方案

    作者:Jay_huaxiao来源:掘金 链接:https://juejin.im/post/5e5fa79de51d45271849e7bd 前言 代码中如果if-else比较多,阅读起来比较困难,维 ...

  9. 英文单词来生成语句java_Java代码编译过程简述

    代码编译是由Javac编译器来完成,流程如下图1所示: 图1 Javac是一种编译器,能将一种语言规范转化成另外一种语言规范,通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范,如C/C ...

最新文章

  1. 自定义的无数据提示界面
  2. conda create -n python 3.6_conda创建python环境
  3. Java 中常用缓存Cache机制的实现
  4. 4E4 models
  5. MaxReceivedMessageSize :已超过传入消息(65536)的最大消息大小配额
  6. icd植入是大手术吗_白内障手术为何要植入人工晶体?便宜的人工晶体会影响视力吗?...
  7. static,构造器,执行顺序
  8. k8s—centos7安装部署NFS服务器和客户端及基于nfs的动态存储storageclass使用总结
  9. R+NLP︱text2vec包——四类文本挖掘相似性指标 RWMD、cosine、Jaccard 、Euclidean (三,相似距离)
  10. 自我管理 写好工作周报
  11. c语言中getnumber函数作用,C语言函数是什么
  12. 第三方支付(微信支付)支付流程分析
  13. Redis 九种数据结构及其底层实现 持久化 缓存机制 过期键与内存淘汰 集群等相关知识
  14. ArangoDB——AQL操作
  15. 【Ant Design】下拉列表Select 、日期选择框DatePicker等跟随滚动条上下移动解决方案
  16. virtualbox安装linux黑屏,VirtualBox安装MeeGo系统黑屏问题处理
  17. 自己的理解——WMD
  18. 计算机硬件相关的论文,计算机硬件论文范文
  19. EDF文件格式/规格说明
  20. 全球及中国铁路建设行业运营管理模式与未来总体规划报告2022版

热门文章

  1. JDK源码(19)-Package
  2. 圆形取景框 相机_据说这款设备可以使老旧单反相机解决无线联机拍摄方案
  3. JAVA学习day07 1
  4. asp.net捕获全局未处理异常的几种方法
  5. 北京大学2019年数学分析考研试题
  6. 幅度调制(AM调制、DSB(双边带)调制、SSB、VSB)
  7. [译]JavaScript async / await:好处、坑和正确用法
  8. React 快速上手 - 目录索引
  9. uva 10077 - The Stern-Brocot Number System
  10. FlashFXP列表参数错误解决方法