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实现包含min函数的栈
Apr 29 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
tensorflow saver 保存和恢复指定 tensor的实例讲解
Jul 26 Python
[原创]Python入门教程2. 字符串基本操作【运算、格式化输出、常用函数】
Oct 29 Python
对python字典过滤条件的实例详解
Jan 22 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
Apr 12 Python
python定时检测无响应进程并重启的实例代码
Apr 22 Python
Python3.5字符串常用操作实例详解
May 01 Python
pandas 数据结构之Series的使用方法
Jun 21 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
spyder 在控制台(console)执行python文件,debug python程序方式
Apr 20 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 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
PHP中数组定义的几种方法
2013/09/01 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
JAVASCRIPT HashTable
2007/01/22 Javascript
Use Word to Search for Files
2007/06/15 Javascript
表单项的name命名为submit、reset引起的问题
2007/12/22 Javascript
jQuery dialog 异步调用ashx,webservice数据的代码
2010/08/03 Javascript
分享精心挑选的23款美轮美奂的jQuery 图片特效插件
2012/08/14 Javascript
JavaScript中的eval()函数使用介绍
2014/12/31 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
用AngularJS来实现监察表单按钮的禁用效果
2016/11/02 Javascript
输入框点击时边框变色效果的实现方法
2016/12/26 Javascript
vue生成随机验证码的示例代码
2017/09/29 Javascript
javascript显示动态时间的方法汇总
2018/07/06 Javascript
详解vue-cli+es6引入es5写的js(两种方法)
2019/04/19 Javascript
Vue项目中配置pug解析支持
2019/05/10 Javascript
解决layUI的页面显示不全的问题
2019/09/20 Javascript
Vue 用Vant实现时间选择器的示例代码
2019/10/25 Javascript
小程序api实现promise封装过程解析
2019/11/21 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
深入讲解Python函数中参数的使用及默认参数的陷阱
2016/03/13 Python
Python批量修改文本文件内容的方法
2016/04/29 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
Python高级特性与几种函数的讲解
2019/03/08 Python
Python如何使用内置库matplotlib绘制折线图
2020/02/24 Python
Python实现分数序列求和
2020/02/25 Python
CSS3支持IE6, 7, and 8的边框border属性
2012/12/28 HTML / CSS
购买英国原创艺术:Art Gallery
2018/08/25 全球购物
请解释virtual关键字的含义
2015/06/17 面试题
简历中求职的个人自我评价
2013/12/03 职场文书
2014工程部年度工作总结
2014/12/17 职场文书
观看建国大业观后感
2015/06/01 职场文书
2016元旦主持人开场白
2015/12/03 职场文书