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处理html转义字符的方法详解
Jul 01 Python
Python爬取qq music中的音乐url及批量下载
Mar 23 Python
python opencv设置摄像头分辨率以及各个参数的方法
Apr 02 Python
python 找出list中最大或者最小几个数的索引方法
Oct 30 Python
利用nohup来开启python文件的方法
Jan 14 Python
详解python路径拼接os.path.join()函数的用法
Oct 09 Python
Python操作Word批量生成合同的实现示例
Aug 28 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
Sep 01 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
Django自带的用户验证系统实现
Dec 18 Python
利用Python+OpenCV三步去除水印
May 28 Python
python利用pandas分析学生期末成绩实例代码
Jul 09 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
探讨:使用XMLSerialize 序列化与反序列化
2013/06/08 PHP
PHP版本常用的排序算法汇总
2015/12/20 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
yii2超好用的日期组件和时间组件
2016/05/05 PHP
删除PHP数组中的重复元素的实现代码
2017/04/10 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
JS 遮照层实现代码
2010/03/31 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
Struts2的s:radio标签使用及用jquery添加change事件
2013/04/08 Javascript
《JavaScript函数式编程》读后感
2015/08/07 Javascript
jquery转盘抽奖功能实现
2015/11/13 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
javascript 动态生成css代码的两种方法
2017/03/17 Javascript
JS异步文件上传(兼容IE8+)
2017/04/02 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
react 创建单例组件的方法
2018/04/26 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
详解Vue中组件的缓存
2019/04/20 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
layui使用及简单的三级联动实现教程
2020/12/01 Javascript
python jieba分词并统计词频后输出结果到Excel和txt文档方法
2018/02/11 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
python散点图实例之随机漫步
2018/08/27 Python
Python+Opencv身份证号码区域提取及识别实现
2020/08/25 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
Python为何不支持switch语句原理详解
2020/10/21 Python
Django用户认证系统如何实现自定义
2020/11/12 Python
Nordgreen手表德国官方网站:丹麦极简主义手表
2019/10/31 全球购物
农村婚礼证婚词
2014/01/10 职场文书
学前班评语大全
2014/05/04 职场文书
科技节口号
2014/06/19 职场文书
不同意离婚上诉状
2015/05/23 职场文书
停发工资证明范本
2015/06/12 职场文书
总经理2015中秋节致辞
2015/07/29 职场文书
在js中修改html body的样式
2021/11/11 Javascript