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检查指定文件是否存在的方法
Jul 06 Python
关于python pyqt5安装失败问题的解决方法
Aug 08 Python
python绘制简单折线图代码示例
Dec 19 Python
Python解析Excle文件中的数据方法
Oct 23 Python
Flask框架模板继承实现方法分析
Jul 31 Python
Python Django框架防御CSRF攻击的方法分析
Oct 18 Python
pytorch实现保证每次运行使用的随机数都相同
Feb 20 Python
OpenCV 之按位运算举例解析
Jun 19 Python
Python通过zookeeper实现分布式服务代码解析
Jul 22 Python
Python基于locals返回作用域字典
Oct 17 Python
python使用selenium爬虫知乎的方法示例
Oct 28 Python
python通过新建环境安装tfx的问题
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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
用php过滤危险html代码的函数
2008/07/22 PHP
PHP 组件化编程技巧
2009/06/06 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
PHP常见字符串操作函数与用法总结
2019/03/04 PHP
TP5框架请求响应参数实例分析
2019/10/17 PHP
20个非常有用的PHP类库 加速php开发
2010/01/15 Javascript
JavaScript高级程序设计 DOM学习笔记
2011/09/10 Javascript
为什么Node.js会这么火呢?Node.js流行的原因
2014/12/01 Javascript
EasyUI中实现form表单提交的示例分享
2015/03/01 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
基于jQuery的网页影音播放器jPlayer的基本使用教程
2016/03/08 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
vue2.0父子组件及非父子组件之间的通信方法
2017/01/21 Javascript
jQuery实现简单漂亮的Nav导航菜单效果
2017/03/29 jQuery
jquery实现左右轮播图效果
2017/09/28 jQuery
vue登录路由验证的实现
2017/12/13 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
微信小程序实现九宫格抽奖
2020/04/15 Javascript
分享一个vue项目“脚手架”项目的实现步骤
2019/05/26 Javascript
python 输出一个两行字符的变量
2009/02/05 Python
python操作oracle的完整教程分享
2018/01/30 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
python读取txt文件并取其某一列数据的示例
2019/02/19 Python
在pytorch中实现只让指定变量向后传播梯度
2020/02/29 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
农业大学毕业生的个人自我评价
2013/10/11 职场文书
校友会欢迎辞
2014/01/13 职场文书
公司介绍信范文
2015/01/31 职场文书
运动会通讯稿50字
2015/07/20 职场文书
小学数学国培研修日志
2015/11/13 职场文书