python 基于selenium实现鼠标拖拽功能


Posted in Python onDecember 24, 2020

1、准备html文件

首先我们需要准备一个鼠标滑动的html文件,用来演示鼠标滑动的效果,注意需要将我们的html文件放在自己的服务器上,

这样我们才能够通过selenium来进行验证。html文件如下:

<html>
<head>
  <meta charset="utf-8" />
  <style>
    body {
  margin: 0;
  padding: 0;
}

input{
  appearance:none;
  -moz-appearance:none;
  -webkit-appearance:none;
  background: none;
  border:none;
}

.wrap{
  margin: 200px 0 0 200px;
}

.box {
  position: relative;
  width: 200px;
  height: 30px;
  border-radius: 20px;
  background: #686B69;
  line-height: 30px;
  overflow: hidden;
  margin-bottom: 40px;
  color: #fff;
  font-size: 12px;
}

.btn {
  position: absolute;
  top: 0;
  left: 0;
  height: 30px;
  width: 30px;
  background: #0c7;
  border-radius: 20px;
  text-align: center;
}

.tips {
  text-align: center;
}

#submit{
  line-height: 28px;
  border-radius: 3px;
  background: #0c7;
  width: 200px;
  text-align: center;
  color: #fff;
}
  </style>
</head>
<body>
<div class="wrap">
<div class="box">


<div class="btn" id="dragEle"></div>


<div class="tips">>>拖动滑块验证<<</div>

</div>
 <input type="button" value="提交验证" id="submit" />
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script type="text/javascript">
  function DragValidate (dargEle,msgEle){
    var dragging = false;//滑块拖动标识
    var iX;
    dargEle.mousedown(function(e) {
      msgEle.text("");
      dragging = true;
      iX = e.clientX; //获取初始坐标
    });
    $(document).mousemove(function(e) {
      if (dragging) {
        var e = e || window.event;
        var oX = e.clientX - iX;
        if(oX < 30){
          return false;
        };
        if(oX >= 210){//容器宽度+10
          oX = 200;
          return false;
        };
        dargEle.width(oX + "px");
        //console.log(oX);
        return false;
      };
    });
    $(document).mouseup(function(e) {
      var width = dargEle.width();
      if(width < 200){
        //console.log(width);
        dargEle.width("30px");
        msgEle.text(">>拖动滑块验证<<");
      }else{
        dargEle.attr("validate","true").text("验证成功!").unbind("mousedown");
      };
      dragging = false;
    });
  };

  DragValidate($("#dragEle"),$(".tips"));
  $("#submit").click(function(){
    if(!$("#dragEle").attr("validate")){
      alert("请先拖动滑块验证!");
    }else{
      alert("验证成功!");
    }
  });
</script>
</body>
</html>

2、使用selenium进行鼠标拖拽操作,具体代码如下:

from selenium import webdriver
import unittest
from selenium.webdriver import ActionChains
import time
 
 
url = 'http://192.168.62.9:1234/easytest/tt'
driver = webdriver.Chrome(executable_path="C:\chromedriver.exe")
driver.get(url)
driver.maximize_window()
 # 获取第一,二,三能拖拽的元素
drag1 = driver.find_element_by_id('dragEle')
 
# 创建一个新的ActionChains,将webdriver实例对driver作为参数值传入,然后通过WenDriver实例执行用户动作
action_chains = ActionChains(driver)
# 将页面上的第一个能被拖拽的元素拖拽到第二个元素位置
# 将页面上的第三个能拖拽的元素,向右下拖动10个像素,共拖动5次
action_chains.drag_and_drop_by_offset(drag1, 208, 0).perform()
time.sleep(5)
driver.quit()

以上就是python 基于selenium实现鼠标拖拽功能的详细内容,更多关于python 鼠标拖拽的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
使用Python脚本来获取Cisco设备信息的示例
May 04 Python
python的多重继承的理解
Aug 06 Python
Python3中的json模块使用详解
May 05 Python
python画折线图的程序
Jul 26 Python
python如何实现视频转代码视频
Jun 17 Python
Python直接赋值、浅拷贝与深度拷贝实例分析
Jun 18 Python
Django框架组成结构、基本概念与文件功能分析
Jul 30 Python
解决django同步数据库的时候app models表没有成功创建的问题
Aug 09 Python
python实现遍历文件夹图片并重命名
Mar 23 Python
Python 忽略文件名编码的方法
Aug 01 Python
Python实现信息轰炸工具(再也不怕说不过别人了)
Jun 11 Python
一行Python命令实现批量加水印
Apr 07 Python
python实现简单猜单词游戏
Dec 24 #Python
Python 虚拟环境工作原理解析
Dec 24 #Python
python基于openpyxl生成excel文件
Dec 23 #Python
Python+unittest+requests+excel实现接口自动化测试框架
Dec 23 #Python
用python计算文件的MD5值
Dec 23 #Python
python中lower函数实现方法及用法讲解
Dec 23 #Python
Python类型转换的魔术方法详解
Dec 23 #Python
You might like
德生S2000电路分析
2021/03/02 无线电
php实现上传图片生成缩略图示例
2014/04/13 PHP
php实现mysql备份恢复分卷处理的方法
2014/12/26 PHP
PHP自定义图片缩放函数实现等比例不失真缩放的方法
2016/08/19 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
16个最流行的JavaScript框架[推荐]
2011/05/29 Javascript
js中的for如何实现foreach中的遍历
2014/05/31 Javascript
JS实现简洁、全兼容的拖动层实例
2015/05/13 Javascript
把Node.js程序加入服务实现随机启动
2015/06/25 Javascript
jquery自定义表格样式
2015/11/23 Javascript
基于jQuery Ajax实现上传文件
2016/03/24 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
input获取焦点时底部菜单被顶上来问题的解决办法
2017/01/24 Javascript
JavaScript基础心法 数据类型
2018/03/05 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
基于mpvue的小程序项目搭建的步骤
2018/05/22 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
js实现贪吃蛇游戏 canvas绘制地图
2020/09/09 Javascript
python实现随机梯度下降法
2020/03/24 Python
Python3简单实现串口通信的方法
2019/06/12 Python
浅析Python 引号、注释、字符串
2019/07/25 Python
python队列原理及实现方法示例
2019/11/27 Python
Python常用模块sys,os,time,random功能与用法实例分析
2020/01/07 Python
纯CSS3代码实现switch滑动开关按钮效果
2016/08/30 HTML / CSS
百丽国际旗下购物网站:优购
2017/02/28 全球购物
银行会计职员个人的自我评价
2013/09/29 职场文书
数据管理员的自我评价分享
2013/11/15 职场文书
物流仓储计划书
2014/01/10 职场文书
数控专业毕业生自荐信范文
2014/03/04 职场文书
硕士生工作推荐信
2014/03/07 职场文书
公司经理聘任书
2014/03/29 职场文书
文艺委员竞选稿
2015/11/19 职场文书
《普罗米修斯》教学反思
2016/02/22 职场文书
Python爬虫实战之爬取携程评论
2021/06/02 Python
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL
HttpClient实现表单提交上传文件
2022/08/14 Java/Android