用Java+Selenium+openCV实现126.com的滑块验证

本文介绍了如何使用Java结合Selenium和OpenCV库来解决126.com的滑块验证问题。首先,通过OpenCV下载和处理图片,计算滑块的正确滑动距离。接着,利用Selenium进行网页操作,包括切换窗口、输入账号密码,以及模拟鼠标滑动滑块完成验证。文章详细展示了每个步骤的代码示例。
摘要由CSDN通过智能技术生成


前言

引入OpenCV库,下载地址:Releases - OpenCV下载4.5.0即可,在下完成安装exe文件后,会出现下列文件,直接将build/java文件下的jar包导入项目的依赖即可。 

一、滑块验证解析?

1.获取驱动,加载126网址

2.切换窗口,因为登录功能是在iframe中,需要先切换窗口

3.输入账号和密码,点击登录(才能弹出滑块提示)

4.下载滑块和背景图

5.用OpenCV技术,处理图片,计算出横向距离(需要计算出原图和显示图的缩放比例才能算出需要滑动的正确距离)

6.用actions模拟鼠标进行滑动

二、解决步骤

1.主流程如下

代码如下(示例):

public static void main(String[] args) throws InterruptedException {
    //1.获取驱动,加载网址
    ChromeDriver driver = new ChromeDriver();
    //driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
    driver.manage().window().maximize(); //全屏
    driver.get("https://www.126.com");

    //2.切换窗口,定位元素
    WebElement iframeElement = driver.findElement(By.xpath("//div[@id='loginDiv']/iframe"));
    We
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值