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 相关文章推荐
如何搜索查找并解决Django相关的问题
Jun 30 Python
Python中处理字符串之endswith()方法的使用简介
May 18 Python
Python中进程和线程的区别详解
Oct 29 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
python导出hive数据表的schema实例代码
Jan 22 Python
python 在屏幕上逐字显示一行字的实例
Dec 24 Python
python os模块简单应用示例
May 23 Python
Python安装与卸载流程详细步骤(图解)
Feb 20 Python
Python 实现自动登录+点击+滑动验证功能
Jun 10 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
Python按顺序遍历并读取文件夹中文件
Apr 29 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发送邮件类代码附详细说明
2008/07/10 PHP
PHP实现取得HTTP请求的原文
2014/08/18 PHP
详解PHP的Yii框架中扩展的安装与使用
2016/04/01 PHP
PHP实现微信对账单处理
2018/10/01 PHP
由prototype_1.3.1进入javascript殿堂-类的初探
2006/11/06 Javascript
新浪刚打开页面出来的全屏广告代码
2007/04/02 Javascript
js中将字符串转换成json的三种方式
2011/01/12 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
2013/01/11 Javascript
使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
2013/11/05 Javascript
在JavaScript应用中使用RequireJS来实现延迟加载
2015/07/01 Javascript
浅谈window对象的scrollBy()方法
2015/07/15 Javascript
分享网页检测摇一摇实例代码
2016/01/14 Javascript
完美实现八种js焦点轮播图(下篇)
2020/04/20 Javascript
JQuery Ajax WebService传递参数的简单实例
2016/11/02 Javascript
bootstrap选项卡扩展功能详解
2017/06/14 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
JavaScript实现轮播图效果
2020/10/30 Javascript
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
python使用pil生成图片验证码的方法
2015/05/08 Python
pytorch对梯度进行可视化进行梯度检查教程
2020/02/04 Python
python等差数列求和公式前 100 项的和实例
2020/02/25 Python
python读取图像矩阵文件并转换为向量实例
2020/06/18 Python
python collections模块的使用
2020/10/16 Python
港湾网络笔试题
2014/04/19 面试题
关于学习的演讲稿
2014/05/10 职场文书
大一工商管理职业生涯规划:有梦最美,行动相随
2014/09/18 职场文书
2014副局长群众路线对照检查材料思想汇报
2014/09/22 职场文书
党员干部对十八届四中全会的期盼
2014/10/17 职场文书
公司介绍信范文
2015/01/31 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
2016年元旦致辞
2015/08/01 职场文书
学生会主席任命书
2015/09/21 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis