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实现带验证码网站的自动登陆实现代码
Jan 12 Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 Python
详谈python在windows中的文件路径问题
Apr 28 Python
Python把csv数据写入list和字典类型的变量脚本方法
Jun 15 Python
利用Django模版生成树状结构实例代码
May 19 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python利用itertools生成密码字典并多线程撞库破解rar密码
Aug 12 Python
Django在Model保存前记录日志实例
May 14 Python
keras实现VGG16方式(预测一张图片)
Jul 07 Python
Python面向对象实现方法总结
Aug 12 Python
Python实现JS解密并爬取某音漫客网站
Oct 23 Python
python数据可视化JupyterLab实用扩展程序Mito
Nov 20 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
深入理解PHP原理之异常机制
2010/08/21 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
ThinkPHP实现动态包含文件的方法
2014/11/29 PHP
php打印输出棋盘的实现方法
2014/12/23 PHP
php实现的农历算法实例
2015/08/11 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
自己写的兼容ie和ff的在线文本编辑器类似ewebeditor
2012/12/12 Javascript
JS文本框不能输入空格验证方法
2013/03/19 Javascript
在 Express 中使用模板引擎
2015/12/10 Javascript
仅30行代码实现Javascript中的MVC
2016/02/15 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
AngularJS自定义指令详解(有分页插件代码)
2017/06/12 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
dts文件中删除一个node或属性的操作方法
2018/08/05 Javascript
微信小程序开发之路由切换页面重定向问题
2018/09/18 Javascript
vue计算属性computed的使用方法示例
2019/03/13 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
javascript实现商品图片放大镜
2019/11/28 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
vue实现桌面向网页拖动文件的示例代码(可显示图片/音频/视频)
2021/03/01 Vue.js
[46:20]TFT vs Secret Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python生成式的send()方法(详解)
2017/05/08 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
Python enumerate函数功能与用法示例
2019/03/01 Python
利用pytorch实现对CIFAR-10数据集的分类
2020/01/14 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
施华洛世奇英国官网:SWAROVSKI英国
2017/03/13 全球购物
体育教师个人的自我评价
2014/02/16 职场文书
项目建议书模板
2014/05/12 职场文书
法人授权委托书范本
2014/09/17 职场文书
2014年国庆节寄语
2014/09/19 职场文书
美甲店的创业计划书模板
2019/08/23 职场文书