python3.8.1+selenium实现登录滑块验证功能

python3.8.1+selenium解决登录滑块验证的问题,先给大家分享一个效果图,感觉不错,可以参考实现代码。

这里的滑块是qq邮箱的截图,如图所示,可以作为同类滑块验证的参考。

"""
auther = "zwb",这里使用的python版本是3.8.1,selenium版本是3.141.0,webdriver是谷歌,版本是81.0.4044.138(正式版本) (64 位)
webdriver各版本对应的浏览器下载地址:https://npm.taobao.org/mirrors/chromedriver,这个脚本是以qq邮箱登录为例
"""
import unittest
from selenium import webdriver
from time import *
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
def get_track(distance):
 track = []
 current = 0
 mid = distance * 3 / 4
 t = 0.2
 v = 0
 while current < distance: # 定义循环条件,如果为真则继续,为假则不继续
 if current < mid: # 正常的if...else结构
 a = 2 # 定义加速度
 else:
 a = -3
 v0 = v
 v = v0 + a * t # 定义移动速度,哈哈哈,v = v0+at
 move = v0 * t + 1 / 2 * a * t * t # 定义每次滑块移动的距离,也是如此.s=v0t+1/2at**2,hahha,写这个的是高手,活学活用
 current += move # 每次遍历得到的move用current保存起来
 track.append(round(move)) # 将得到的move取整添加的列表中,每次都添加到列表尾部,可以用extend多次添加和insert添加到自己想要的位置
 return track # 返回每次移动的轨迹列表
class testUiProject(unittest.TestCase):
 def setUp(self):
 self.driver = webdriver.Chrome() # 定义驱动器
 self.url = "https://mail.qq.com/" # 定义需要访问的地址url
 self.driver.implicitly_wait(30) # 设置隐式等待时间
 self.driver.set_script_timeout(45) # 设置异步脚本加载超时时间
 self.driver.set_page_load_timeout(45) # 设置页面加载超时时间
 self.driver.maximize_window() # 设置页面窗口最大化
 def test_First_Case(self):
 global iframe, start_position # 函数内部定义全局变量
 driver = self.driver # 定义浏览器驱动
 driver.get(self.url) # 得到url打开网站
 username = "qq邮箱账号" # 定义用户账户
 password ="qq密码" # 定义用户密码
 driver.switch_to.frame("login_frame") # 打开网页后,查看是否有iframe标签,如果有则需要跳转到该标签后进行定位,这里使用id定位
 self.driver.find_element_by_xpath("//*[@id='u']").send_keys(username) # 传入用户账号
 self.driver.find_element_by_xpath("//*[@id='p']").send_keys(password) # 传入用户密码
 self.driver.find_element_by_id("login_button").click() # 点击登录按钮
 sleep(2) # 等待资源加载
 # driver.switch_to.default_content() 切换到顶层标签,如果之前的iframe标签和现在iframe标签不一致则需要切换,否则不需要
 # driver.switch_to.frame("tcaptcha_iframe")
 WebDriverWait(driver, 5, 0.5).until(
 EC.presence_of_element_located((By.ID, "tcaptcha_drag_thumb")) # 等待图片加载出来
 )
 try:
 start_position = driver.find_element_by_id("tcaptcha_drag_thumb") # 得到滑块的初始位置,并进行异常处理
 except Exception as e:
 print("get button failed: ", e)
 sleep(2) # 等待资源加载
 distance = 300 # 这里根据qq邮箱的初始窗口大小得到的宽度取值
 while 1:
 action = ActionChains(driver) # 定义ActionChains
 action.click_and_hold(start_position).perform() # 点击初始滑块位置并保持不释放
 action.reset_actions() # 清除之前的action
 track = get_track(distance) # 调用移动轨迹函数并传入距离distance,distance根据定位的滑块窗口大小自己设定
 for i in track: # 利用循环模拟滑块移动轨迹,xoffset是横向移动,yoffset是纵向移动,这里不纵向移动,所以yoffset=0
 action.move_by_offset(xoffset=i, yoffset=0).perform()
 action.reset_actions() # 清除之前的action
 sleep(0.5)
 # action.release().perform() 释放鼠标保持点击状态,这句话可以根据需要保留,目前这里不需要保留,保留会使得循环提前终止
 sleep(5)
 def tearDown(self):
 self.driver.quit()
if __name__ == "__main__":
 unittest.main()

总结

到此这篇关于python3.8.1+selenium解决登录滑块验证的问题的文章就介绍到这了,更多相关python selenium 登录滑块验证内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python3.7+selenium模拟淘宝登录功能的实现

    在使用selenium去获取淘宝商品信息时会遇到登录界面 这个登录界面处理的难度在于滑动验证的实现,有的人使用微博登录,避免了滑动验证,那可不可以使用密码登录呢?答案是可以的 实现思路 首先导入需要的库 from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.web

  • python+selenium+chrome批量文件下载并自动创建文件夹实例

    实现效果:通过url所绑定的关键名创建目录名,每次访问一个网页url后把文件下载下来 代码: 其中 data[i][0].data[i][1] 是代表 关键词(文件保存目录).网站链接(要下载文件的网站) def getDriverHttp(): for i in range(reCount): # 创建Chrome浏览器配置对象实例 chromeOptions = webdriver.ChromeOptions() # 设定下载文件的保存目录为d盘的tudi目录, # 如果该目录不存在,将会自

  • python3+selenium获取页面加载的所有静态资源文件链接操作

    软件版本: python 3.7.2 selenium 3.141.0 pycharm 2018.3.5 具体实现流程如下,废话不多说,直接上代码: from selenium import webdriver from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.desired_capabilities import DesiredCapabilities d = Desired

  • Python selenium模块实现定位过程解析

    selenuim模块定位方法 1,我们想要操作html页面上的元素,首先必须要定位到这个元素上.每个元素都有他各自的属性,比如id,name,class等,我们就通过这些属性来定位元素. 2,我们先打开一个网页,按F12来获取这个网页的源代码,方便我们定位元素. from selenium import webdriver driver=webdriver.Chrome() #启动谷歌浏览器 driver.get("http://www.baidu.com") #打开百度网页 3,按F

  • Python selenium模拟手动操作实现无人值守刷积分功能

    经常为学校的各种刷分而发愁,得知开学无望,日后还要刷课,索性自动化一次,学而不用乃愚昧 聪慧 四大模块 初始化 from selenium import webdriver if __name__ == '__main__': driver = webdriver.Chrome() url = 'https://pc.xuexi.cn/points/login.html?ref=https://pc.xuexi.cn/points/my-points.html' driver.get(url =

  • Python3 selenium 实现QQ群接龙自动化功能

    一.环境 环境配置为安装了 selenium 模块的 Python3 ,以及浏览器对应的driver 如果没有安装 selenium ,可以在控制台执行下面的代码 pip3 install selenium 浏览器driver下载地址:https://selenium-python.readthedocs.io/installation.html#drivers 需要选择对应的浏览器的对应版本进行下载 下载完成之后放到Python安装目录即可 二.代码 不足:只能给最新发布的一个群接龙进行自动接

  • Python selenium爬取微博数据代码实例

    爬取某人的微博数据,把某人所有时间段的微博数据都爬下来. 具体思路: 创建driver-----get网页----找到并提取信息-----保存csv----翻页----get网页(开始循环)----...----没有"下一页"就结束, 用了while True,没用自我调用函数 嘟大海的微博:https://weibo.com/u/1623915527 办公室小野的微博:https://weibo.com/bgsxy 代码如下 from selenium import webdrive

  • Python Selenium模块安装使用教程详解

    一.概述: Selenium是一个用于Web应用程序测试的工具,本文使用的是Selenium 2.Selenium就是一套类库,不依赖于任何测试框架,除了必要的浏览器驱动,不需要启动其他进程或安装其他程序,也不必像 Selenium 1那样需要先启动服务. 1 支持浏览器 Firefox (FirefoxDriver) IE(InternetExplorerDriver) Opera(OperaDriver) Chrome (ChromeDriver) safari(SafariDriver)

  • Python + selenium + crontab实现每日定时自动打卡功能

    前言 近几日迫于被辅导员三番五次的提醒每日一报打卡,就想着去写个脚本挂在服务器上定时执行.经过我不懈的努力,最终选择了seleniumseleniumselenium,因为简单( 安装selenium库 $ sudo pip install selenium 安装chromdriver 因为我有代理所以直接在官网下载的,那这里你可以选择用淘宝镜像源. 这里为了方便,我直接放命令了.Chromedriver版本我这里选择的是80.0.3987.16(注意要和一会儿下载的Chrome版本一致). 下

  • python3.8.1+selenium实现登录滑块验证功能

    python3.8.1+selenium解决登录滑块验证的问题,先给大家分享一个效果图,感觉不错,可以参考实现代码. 这里的滑块是qq邮箱的截图,如图所示,可以作为同类滑块验证的参考. """ auther = "zwb",这里使用的python版本是3.8.1,selenium版本是3.141.0,webdriver是谷歌,版本是81.0.4044.138(正式版本) (64 位) webdriver各版本对应的浏览器下载地址:https://npm.t

  • JavaScript实现登录滑块验证

    本文实例为大家分享了JavaScript实现登录滑块验证的具体代码,供大家参考,具体内容如下 html代码 <div class="login-select"> <div v-show="errselectFlag" id="err-select"></div> <p id="title-p">按住滑块,拖拽验证</p> <div id="left-s

  • Python 网易易盾滑块验证功能的实现

    目录 操作环境 分析 解决方案 使用selenium请求url,并触发滑块验证 获取验证图片并计算滑块距离 生成滑动轨迹 滑动模块 效果 资源下载 记一次 网易易盾滑块验证分析并通过 操作环境 win10 . mac Python3.9 selenium.PIL.numpy.scipy.matplotlib 分析 网易易盾滑块验证,就长下面这个样子 具体验证原理有兴趣的可自行查询官方文档:网易易盾开发文档 话不多少,借助之前写阿里云盾滑块和极验滑块的经验,直接上代码,详细可参考:[python3

  • JavaScript实现拼图式滑块验证功能

    目录 演示 前戏 源码介绍 主页样式设计 滑块验证部分 img_ver内部 演示 前戏 滑块验证码是在网站.APP等应用中常见的一种验证方式,通过按照一定规则滑动滑块到指定位置完成验证,才可以进行下一步操作.滑块验证码有两种设计,一种是在滑动框内“一滑到底”即完成验证的,还有一种是滑动滑块拼合拼图完成验证的.由于拼图式的滑块验证码安全性更高,趣味性更强,所以多数网站或APP都选择了拼图式的滑块验证码. 拼图式的滑块验证码在业务应用中有三种展现形式,触发式.嵌入式和弹出式.触发式即鼠标光标移入验证

  • ASP.NET jQuery 实例11 通过使用jQuery validation插件简单实现用户登录页面验证功能

    简单来说,jQuery validation插件就是来校验表单form里面元素输入的内容是否满足业务规则,如果不满足,可以给出用户自定义的提示信息.该插件不仅默认有一些校验规则,如校验内容是否为空,内容的长度是否符合给定的值,还可以根据用户自定义业务规则,而且错误提示信息,也可以根据用户的要求自定义显示.看来这个插件的功能确实很强大,是不是迫不及待想使用了.好的,那我们就开始简介如何使用它. jQuery validation 插件下载地址:http://plugins.jquery.com/p

  • 基于JS组件实现拖动滑块验证功能(代码分享)

    拖动滑块验证功能在支付宝,微信各大平台都能见到这样的功能,那么基于js组件是如何实现此功能的呢?今天小编就给大家分享下js 拖动滑块 验证功能的实现代码,具体代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="Cache-Control" content="no-cache, no-store, m

  • Vue 实现拖动滑块验证功能(只有css+js没有后台验证步骤)

    vue验证滑块功能,在生活中很多地方都可以见到,那么使用起来非常方便,基于vue如何实现滑块验证呢?下面通过代码给大家讲解. 效果图如下所示: 拖动前 拖动后 代码引用的css与js都是线上的 将代码全部复制到一个html中可以直接打开,极其简单. 来分析一下代码 底色div上放了一个变色div再放一个提示字的div最后加一个滑块div 给滑块div绑定鼠标移动事件 <!DOCTYPE html> <html> <head> <meta charset="

  • JS+HTML5本地存储Localstorage实现注册登录及验证功能示例

    本文实例讲述了JS+HTML5本地存储Localstorage实现注册登录及验证功能.分享给大家供大家参考,具体如下: 源码引用的js.jquery都是在线的,代码拷到本地就能运行 登录: <html ng-app="ionicApp"> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, m

  • 使用konva和vue-konva库实现拖拽滑块验证功能

    1. 在vue项目中安装konva和vue-konva库 npm install konva vue-konva --save-dev 2. 引入vue-konva库 import VueKonva from 'vue-konva': Vue.use(VueKonva) 3. 创建单独的滑块验证组件 Captcha.vue,在相应的页面中引入使用即可 <template> <v-stage :config="Config.stage"> <v-layer

  • selenium 反爬虫之跳过淘宝滑块验证功能的实现代码

    在处理问题的之前,给大家个第一个锦囊! 你需要将chorme更新到最新版版本84,下载对应的chorme驱动 链接:http://chromedriver.storage.googleapis.com/index.html 注意 划重点!!一定要做这一步,因为我用的83的chorme他是不行滴,~~~~~~~ 问题 1.一周前我的滑块验证代码还是可以OK的,完全没问题!附代码 low一眼 url = "https://login.taobao.com/member/login.jhtml&quo

随机推荐