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解析xml文件实例分析
May 27 Python
Python获取指定文件夹下的文件名的方法
Feb 06 Python
Python利用公共键如何对字典列表进行排序详解
May 19 Python
django 解决manage.py migrate无效的问题
May 27 Python
python使用pygame模块实现坦克大战游戏
Mar 25 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
Django ORM 聚合查询和分组查询实现详解
Aug 09 Python
python解析命令行参数的三种方法详解
Nov 29 Python
pip安装提示Twisted错误问题(Python3.6.4安装Twisted错误)
May 09 Python
Python自省及反射原理实例详解
Jul 06 Python
基于Python爬取股票数据过程详解
Oct 21 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 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
地球防卫队:陪着奥特曼打小怪兽的人类力量 那些经典队服
2020/03/08 日漫
全国FM电台频率大全 - 8 黑龙江省
2020/03/11 无线电
ninety plus是什么?ninety plus咖啡好吗?
2021/03/04 新手入门
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php将gd生成的图片缓存到memcache的小例子
2013/06/05 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
详解YII关联查询
2016/01/10 PHP
浅谈php中fopen不能创建中文文件名文件的问题
2017/02/06 PHP
PHP文件操作简单介绍及函数汇总
2020/12/11 PHP
javascript jQuery $.post $.ajax用法
2008/07/09 Javascript
FireFox与IE 下js兼容触发click事件的代码
2008/11/20 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
IE无法设置短域名下Cookie
2010/09/23 Javascript
遮罩层点击按钮弹出并且具有拖动和关闭效果(两种方法)
2015/08/20 Javascript
jQuery实现瀑布流布局详解(PC和移动端)
2020/09/01 Javascript
js实现二级菜单渐隐显示
2015/11/03 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
原生JS版和jquery版实现checkbox的全选/全不选/点选/行内点选(Mr.Think)
2016/10/29 Javascript
Jquery Easyui日历组件Calender使用详解(23)
2016/12/18 Javascript
使用element-ui的el-menu导航选中后刷新页面保持当前选中状态
2019/07/19 Javascript
vue父子组件的通信方法(实例详解)
2019/11/10 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
Nodejs环境实现socket通信过程解析
2020/07/03 NodeJs
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
python实现问号表达式(?)的方法
2013/11/27 Python
Python的Scrapy爬虫框架简单学习笔记
2016/01/20 Python
Python实现的简单模板引擎功能示例
2017/09/02 Python
python输入错误密码用户锁定实现方法
2017/11/27 Python
解决pycharm无法识别本地site-packages的问题
2018/10/13 Python
在Pycharm中设置默认自动换行的方法
2019/01/16 Python
HTML5新增的8类INPUT输入类型介绍
2015/07/06 HTML / CSS
amazeui树节点自动展开折叠面板并选中第一个树节点的实现
2020/08/24 HTML / CSS
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
使用python创建股票的时间序列可视化分析
2022/03/03 Python