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实现把数字转换成中文
Jun 29 Python
详解python中的json的基本使用方法
Dec 21 Python
Django框架用户注销功能实现方法分析
May 28 Python
python读取目录下所有的jpg文件,并显示第一张图片的示例
Jun 13 Python
python各类经纬度转换的实例代码
Aug 08 Python
python实现飞机大战小游戏
Nov 08 Python
Python实现直播推流效果
Nov 26 Python
pytorch:torch.mm()和torch.matmul()的使用
Dec 27 Python
python TCP包注入方式
May 05 Python
浅谈Python中的模块
Jun 10 Python
Python天气语音播报小助手
Sep 25 Python
使用python生成大量数据写入es数据库并查询操作(2)
Sep 23 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/12/05 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
Yii框架实现对数据库的CURD操作示例
2019/09/03 PHP
图片自动更新(说明)
2006/10/02 Javascript
JQuery操作iframe父页面与子页面的元素与方法(实例讲解)
2013/11/20 Javascript
原生js仿jq判断当前浏览器是否为ie,精确到ie6~8
2014/08/30 Javascript
使用js画图之饼图
2015/01/12 Javascript
jQuery+AJAX实现网页无刷新上传
2015/02/22 Javascript
js实现跟随鼠标移动且带关闭功能的图片广告实例
2015/02/26 Javascript
jQuery给元素添加样式的方法详解
2015/12/30 Javascript
BootStrap中Table分页插件使用详解
2016/10/09 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
angular实现spa单页面应用实例
2017/07/10 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
移动设备手势事件库Touch.js使用详解
2017/08/18 Javascript
JS一个简单的注册页面实例
2017/09/05 Javascript
360提示[高危]使用存在漏洞的JQuery版本的解决方法
2017/10/27 jQuery
vue的传参方式汇总和router使用技巧
2018/05/22 Javascript
vue-auto-focus: 控制自动聚焦行为的 vue 指令方法
2018/08/25 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
2020/08/28 Javascript
Python中用Spark模块的使用教程
2015/04/13 Python
Linux下升级安装python3.8并配置pip及yum的教程
2020/01/02 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
用Python制作mini翻译器的实现示例
2020/08/17 Python
法国在线药房:Shop Pharmacie
2019/11/26 全球购物
澳大利亚在线划船、露营和钓鱼商店:BCF Australia
2020/03/22 全球购物
网络工程专业自荐信范文
2014/03/16 职场文书
新闻报道策划方案
2014/06/11 职场文书
拾金不昧锦旗标语
2014/06/27 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
2014年工作总结与下年工作计划
2014/11/27 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015公务员年度考核评语
2015/03/25 职场文书
高老头读书笔记
2015/06/30 职场文书
高温慰问简报
2015/07/21 职场文书