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网络编程学习笔记(二):socket建立网络客户端
Jun 09 Python
Python中的ceil()方法使用教程
May 14 Python
Python解析并读取PDF文件内容的方法
May 08 Python
Django项目开发中cookies和session的常用操作分析
Jul 03 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
python实现微信小程序用户登录、模板推送
Aug 28 Python
python实现随机加减法生成器
Feb 24 Python
Python3-异步进程回调函数(callback())介绍
May 02 Python
win10+anaconda安装yolov5的方法及问题解决方案
Apr 29 Python
在Django中使用MQTT的方法
May 10 Python
总结几个非常实用的Python库
Jun 26 Python
Python 匹配文本并在其上一行追加文本
May 11 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与flash as3 socket通信传送文件实现代码
2014/08/16 PHP
phpMyAdmin安装并配置允许空密码登录
2015/07/04 PHP
Thinkphp+smarty+uploadify实现无刷新上传
2015/07/30 PHP
Javascript的匿名函数小结
2009/12/31 Javascript
捕获键盘事件(且兼容各浏览器)
2013/07/03 Javascript
Jquery Uploadify多文件上传带进度条且传递自己的参数
2013/08/28 Javascript
html文件中jquery与velocity变量中的$冲突的解决方法
2013/11/01 Javascript
js类式继承的具体实现方法
2013/12/31 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
详解node nvm进行node多版本管理
2017/10/21 Javascript
JavaScript数组、json对象、eval()函数用法实例分析
2019/02/21 Javascript
vue实现将数据存入vuex中以及从vuex中取出数据
2019/11/08 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
vue watch监控对象的简单方法示例
2021/01/07 Vue.js
黑科技 Python脚本帮你找出微信上删除你好友的人
2016/01/07 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python调用百度语音REST API
2018/08/30 Python
python实现Virginia无密钥解密
2019/03/20 Python
python实现操作文件(文件夹)
2019/10/31 Python
keras多显卡训练方式
2020/06/10 Python
使用python库xlsxwriter库来输出各种xlsx文件的示例
2020/09/01 Python
浅析python字符串前加r、f、u、l 的区别
2021/01/24 Python
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
Origins加拿大官网:雅诗兰黛集团高端植物护肤品牌
2017/11/19 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
Yahoo-PHP面试题4
2012/05/05 面试题
linux面试题参考答案(2)
2015/12/06 面试题
网络管理专业求职信
2014/03/15 职场文书
《三顾茅庐》教学反思
2014/04/10 职场文书
会计专业毕业生自荐书
2014/06/25 职场文书
三月法制宣传月活动总结
2014/07/03 职场文书
离婚协议书怎么写
2014/09/12 职场文书
2014年社区国庆节活动方案
2014/09/16 职场文书
python自动统计zabbix系统监控覆盖率的示例代码
2021/04/03 Python