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实现方便使用的级联进度信息实例
May 05 Python
Python使用turtule画五角星的方法
Jul 09 Python
python文件名和文件路径操作实例
Sep 29 Python
Python3中的列表,元组,字典,字符串相关知识小结
Nov 10 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
教你用Python创建微信聊天机器人
Mar 31 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
django中瀑布流写法实例代码
Oct 14 Python
python+mysql实现个人论文管理系统
Oct 25 Python
Python自带的IDE在哪里
Jul 01 Python
Python filter()及reduce()函数使用方法解析
Sep 05 Python
python基于win32api实现键盘输入
Dec 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
PHP简单遍历对象示例
2016/09/28 PHP
PHP排序二叉树基本功能实现方法示例
2018/05/26 PHP
PHP封装cURL工具类与应用示例
2019/07/01 PHP
PHP替换Word中变量并导出PDF图片的实现方法
2020/11/26 PHP
用javascript控制iframe滚动的代码
2007/04/10 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
AlertBox 弹出层信息提示框效果实现步骤
2010/10/11 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
window.onload与$(document).ready()的区别分析
2015/05/30 Javascript
jquery插件bootstrapValidator数据验证详解
2016/11/09 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
在vue.js中抽出公共代码的方法示例
2017/06/08 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
node实现爬虫的几种简易方式
2019/08/22 Javascript
JS实现电脑虚拟键盘的操作
2020/06/24 Javascript
纯JS开发baguetteBox.js响应式画廊插件
2020/06/28 Javascript
Openlayers实现图形绘制
2020/09/28 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
python实现分析apache和nginx日志文件并输出访客ip列表的方法
2015/04/04 Python
Python各类图像库的图片读写方式总结(推荐)
2018/02/23 Python
python 实现批量xls文件转csv文件的方法
2018/10/23 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python getpass实现密文实例详解
2019/09/24 Python
使用keras和tensorflow保存为可部署的pb格式
2020/05/25 Python
css3 盒模型以及box-sizing属性全面了解
2016/09/20 HTML / CSS
如何利用input事件来监听移动端的输入
2016/04/15 HTML / CSS
canvas实现二维码和图片合成的示例代码
2018/08/01 HTML / CSS
医院护士专业个人的求职信
2013/12/09 职场文书
安全承诺书格式
2014/05/21 职场文书
合伙购房协议样本
2014/10/06 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
2015年宣传部个人工作总结
2015/05/14 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
交互式可视化js库gojs使用介绍及技巧
2022/02/18 Javascript
Java基于Dijkstra算法实现校园导游程序
2022/03/17 Java/Android