python 基于selenium实现鼠标拖拽功能
作者:高文祥888888 发布时间:2022-10-30 17:03:07
标签:python,selenium,鼠标拖拽
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()
来源:https://www.cnblogs.com/win0211/p/12107003.html


猜你喜欢
- 一、本文需求背景周六日出现CDN大量请求,现需要分析其请求频次与来源,查询是否存在被攻击问题。本文以阿里云CDN日志作为辅助查询数据,其它云
- 一、numpy是什么?扩展库numpy是Python支持科学计算的重要扩展库,是数据分析和科学计算领域如scipy、pandas、sklea
- SOLyog的下载、安装以及使用很简单。我去了相关网站下载,它只有384K字节大小。它把两个文件(一个可执行文件.exe和一个动态链接库文件
- 如何用PYTHON制作填词游戏新建一个PYTHON文档。用JUPYTER NOTEBOOK打开即可。print("Heart is
- 在不久前的一天,当我为了解决一个语法问题来翻阅VBscript文档时,偶然间发现在了下面的一句话: &nb
- 作者:JavaScript Kit译者:子乌(Sheneyan)翻译日期:2006-02-12英文原文:Conditional Compil
- 使用 str.join() 方法打印不带括号的元组,例如 result = ','.join(my_tuple)。 str.
- 很多时候,希望能够在 HTML 中使用空格排版。但浏览器在解析 HTML 时,会把连续的空格解析成一个,所以我们会使用
- 目录一、 什么是自定义指令二、 如何自定义指令钩子函数三、应用场景输入框防抖图片懒加载一键 Copy的功能拖拽总结一、 什么是自定义指令我们
- Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法一、问题描述
- 通常情况下,我们想构建一张表单时会在模板文件login.html中写入<form action="/your-name/&q
- 在python中利用numpy创建一个array, 然后我们想获取array的最大值,最小值。可以使用一下方法:一、创建数组这样就可以获得一
- 我就废话不多说了,大家还是直接看代码吧!talk is cheap from openpyxl import Workbook
- 使用Flask-SQLAlchemy管理数据库Flask-SQLAlchemy是一个Flask扩展,它简化了在Flask应用程序中对SQLA
- 需要使用到的文件wxapp.py, read_file.py, setup.py#!/usr/bin/env python# -*- cod
- 腾讯“月捐计划”倡导爱心人士,通过每月小额捐款的形式,长期关注和支持公益项目。并和亿万爱心网友一起,每人每月1份爱,点滴付出,汇成爱海,形成
- 1. 开始Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等。在网上玩爬虫的文章通常都是介绍
- 下面这个函数使用FSO对象来判断服务器上的某个文件是否存在:<%Private Function Dir(byVa
- PyQt5布局控件QVBoxLayout简介采用QVBoxLayout类,按照从上到下的顺序添加控件本节内容较少,演示两个实例,便于明白QV
- 显示有限的接口到外部当发布python第三方package时,并不希望代码中所有的函数或者class可以被外部import,在__init_