https://blog.csdn.net/u010503127/article/details/51381284

Selenium实现元素的拖拽(java版)

【前言】

自从淘宝网登陆页出现滑块验证,很多其他网站也在模仿这个滑块验证,在防止机器人恶意注册方面确实起到一定的作用。

【关于滑块的原理】:

        响应时间,拖拽速度,时间,位置,轨迹,重试次数等。这些因素能够构成一个采样结果或者辨识特性。根据这些特性可以猜测,你是人或者其他东西。或者能够猜测,你是谁或者什么东西。猜测结果中会涉及到另一个问题,那就是概率,比如80%的概率是人,那么就会放行,30%的概率是人,那就会跳转到更复杂的验证或者拒绝放行等。阈值的设定就需要仔细研究了。

【滑块拖动实现过程】:

1,判断验证码在什么时候出现。

2,验证码出现时,判断何时加载完成。

3,确定验证码的位置。

4,用鼠标模拟拖动验证码。

5,检验本次操作是否成功

【滑块实现代码范例】:

【前言】

       自从淘宝网登陆页出现滑块验证,很多其他网站也在模仿这个滑块验证,在防止机器人恶意注册方面确实起到一定的作用。

【关于滑块的原理】:

        响应时间,拖拽速度,时间,位置,轨迹,重试次数等。这些因素能够构成一个采样结果或者辨识特性。根据这些特性可以猜测,你是人或者其他东西。或者能够猜测,你是谁或者什么东西。猜测结果中会涉及到另一个问题,那就是概率,比如80%的概率是人,那么就会放行,%的概率是人,那就会跳转到更复杂的验证或者拒绝放行等。阈值的设定就需要仔细研究了。

【滑块拖动实现过程】:
,判断验证码在什么时候出现。 ,验证码出现时,判断何时加载完成。 ,确定验证码的位置。 ,用鼠标模拟拖动验证码。 ,检验本次操作是否成功 【滑块实现代码范例】: [java] view plain copy
//新增判断是否存在滑块验证
try{
admcDriver.findElement(By.id("sillerVerifyCode")).click();//sillerVerifyCode为滑块出现时的id
logger.info("滑块元素已经存在!!!");
Actions action = new Actions(admcDriver);
//获取滑动滑块的标签元素
WebElement source = admcDriver.findElement(By.xpath("//div[@class='dt_child_content']/div[3]"));
//确保每次拖动的像素不同,故而使用随机数
action.clickAndHold(source).moveByOffset((int)(Math.random()*)+, );
Thread.sleep();
action.clickAndHold(source).moveByOffset((int)(Math.random()*)+, );
Thread.sleep();
action.clickAndHold(source).moveByOffset((int)(Math.random()*)+, );
Thread.sleep();
action.clickAndHold(source).moveByOffset((int)(Math.random()*)+, );
Thread.sleep();
//拖动完释放鼠标
action.moveToElement(source).release();
//组织完这些一系列的步骤,然后开始真实执行操作
Action actions = action.build();
actions.perform();
}catch(ElementNotVisibleException e1){
logger.info("滑块元素不存在");
}

【Selenium-WebDriver问题篇】Selenium实现元素的拖拽(java版)(转)的更多相关文章

  1. 第四篇 :微信公众平台开发实战Java版之完成消息接受与相应以及消息的处理

    温馨提示: 这篇文章是依赖前几篇的文章的. 第一篇:微信公众平台开发实战之了解微信公众平台基础知识以及资料准备 第二篇 :微信公众平台开发实战之开启开发者模式,接入微信公众平台开发 第三篇 :微信公众 ...

  2. 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

    第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...

  3. 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息

    第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...

  4. 第七篇 :微信公众平台开发实战Java版之如何获取微信用户基本信息

    在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同). 公众号可通过本接口来根据O ...

  5. 第六篇 :微信公众平台开发实战Java版之如何自定义微信公众号菜单

    我们来了解一下 自定义菜单创建接口: http请求方式:POST(请使用https协议) https://api.weixin.qq.com/cgi-bin/menu/create?access_to ...

  6. 第五篇 :微信公众平台开发实战Java版之如何获取公众号的access_token以及缓存access_token

    一.access_token简介 为了使第三方开发者能够为用户提供更多更有价值的个性化服务,微信公众平台 开放了许多接口,包括自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等, 开 ...

  7. 第三篇 :微信公众平台开发实战Java版之请求消息,响应消息以及事件消息类的封装

    微信服务器和第三方服务器之间究竟是通过什么方式进行对话的? 下面,我们先看下图: 其实我们可以简单的理解: (1)首先,用户向微信服务器发送消息: (2)微信服务器接收到用户的消息处理之后,通过开发者 ...

  8. 第二篇 :微信公众平台开发实战Java版之开启开发者模式,接入微信公众平台开发

    第一部分:微信公众号对接的基本介绍 一.填写服务器配置信息的介绍 登录微信公众平台官网后,进入到公众平台后台管理页面. 选择 公众号基本设置->基本配置 ,点击“修改配置”按钮,填写服务器地址( ...

  9. 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备

    相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结.所以下面给大家分享一下我的经验: 微信公众号是什么? 官网的介绍:再小的个 ...

随机推荐

  1. 2.初步认识Angular2

    简述:一个完整的Angular应用主要由六个重要部分构成,分别是:组件,模板,指令,服务,依赖注入,和路由.这些组成部分各司其职,而又紧密协作. 其中,与用户直接打交互的是模板视图,它是构成组件的要素 ...

  2. linux od命令详解

    Linux od命令 Linux od命令用于输出文件内容.od指令会读取所给予的文件的内容,并将其内容以八进制字码呈现出来 将指定文件以八进制形式(默认)转储到标准输出.如果指定了多于一个的文件参数 ...

  3. 浏览器实现PDF预览

    1.使用jquery.media.js预览PDF <!DOCTYPE html> <html> <head> <meta charset="utf- ...

  4. 使用shell脚本批处理控制大数据环境服务启动停止

    三台集群机器: master   192.168.168.200 slave1     192.168.168.201 slave2     192.168.168.202 1.start-maste ...

  5. 【java】浅谈for循环

    for语法: for(初始化条件; 判断条件(bool型,不可缺省); 条件改变)// 初始化条件,条件改变可以是多条,eg for(x=1,y=1;x<4;x++,y++) { 执行的操作 } ...

  6. ☞上一篇无聊文章 分析网站CSS构架流程(一)

    1.无力吐槽 2.reset.css 3.功能css() 4.单页面CSS 5.网站通用样式库 6.图标文件库

  7. 黄聪:初识Pjax:pjax是什么

    听说博主不再折腾wordpress了,陌小雨还是转载到网站做个备份吧,万一哪天没有了呢.陌小雨觉得讲的挺清楚的,小白都能懂. pjax是 pushstate + ajax,分别百度可以得到相关资料,在 ...

  8. 数据仓库专题(2)-Kimball维度建模四步骤

    一.前言 四步过程维度建模由Kimball提出,可以做为业务梳理.数据梳理后进行多维数据模型设计的指导流程,但是不能作为数据仓库系统建设的指导流程.本文就相关流程及核心问题进行解读. 二.数据仓库建设 ...

  9. 树莓派Raspberry Pi zero w无线联网实测

    第一次学习树莓派,使用的是Raspberry Pi zero w的型号. 刚开始,就只有一块板子!!!这要怎么开发啊 经过网上查阅资料,发现可以通过WiFi连接PC端实现开发测试 准备材料:一根USB ...

  10. 【maven】之打包不带版本号的问题

    今天在写maven项目的时候发现打包没有带版本号,只有包名 百思不得其解,我翻看之前的项目发现并没有这种情况,最后看了一下文档 发现是自己在build中写了fileName  导致的!删除自定义的fi ...