(java+selenium)Web自动化12306模拟人工滑块验证
Web自动化测试中12306登陆中想着模拟鼠标去拖动滑块完成验证,试了很久发现了一种方法可以来绕过浏览器的检测来完成验证.
话不多说,直接上图和代码
selenium我用的是3.多的版本,如果是4.多的版本定位元素语法可能是:
driver.findElement(By.id("J-login"));
首先是所需要的的导入的jar包
下面是主方法:
package com.zmy.Test;
import java.util.concurrent.TimeUnit;
import org.junit.Assert;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.Select;public class WebAnto_12306 {public static void main(String[] args) throws InterruptedException {// 配置谷歌驱动System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe");// 驱动自动控制软件标识ChromeOptions options = new ChromeOptions();options.addArguments("--disable-blink-features=AutomationControlled");options.setExperimentalOption("excludeSwitches", new String[] { "enable-automation" });// 创建驱动对象ChromeDriver driver = new ChromeDriver(options);// 窗口最大化driver.manage().window().maximize();// 隐式等待10sdriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);// 打开12306官网driver.get("https://www.12306.cn/index/");// 找到登录按钮并点击driver.findElementById("J-btn-login").click();// 找到用户名输入框并输入driver.findElementById("J-userName").sendKeys("175********");// 找到密码输入框driver.findElementById("J-password").sendKeys("zhang******");// 找到登陆按钮并点击driver.findElementById("J-login").click();// 找到拖动按钮WebElement btnElement = driver.findElementById("nc_1_n1z");// 创建动作对象Actions actions = new Actions(driver);// 按住鼠标actions.clickAndHold(btnElement);// 拖到最右边actions.moveByOffset(400, 0);//放开鼠标actions.release();// 执行该动作actions.perform();}
}
下面图片中的两个框框是成功的关键,可以试着去将第一个框框中options中add和set两个注释啦,你会有意外的发现
第二个框中的拖到最右边的来两个参数是,第一个是x轴,以拖动按钮作为中心水平是x轴,竖直是y轴向右移动400像素(qq截图就可以查看这个拖动框的长宽),上下不需要动.接着直接运行你会发现他可以自己模拟鼠标拖动啦.
(java+selenium)Web自动化12306模拟人工滑块验证相关推荐
- 【爬虫剑谱】二卷4章 实战篇-模拟登录铁路12306网站(滑块验证)
Python\网络爬虫\Selenium 一.源码 二.实战总结 问题一:不愿意代码模块化(常见于我这种菜狗+懒狗) 三.参考文献 一.源码 from selenium import webdrive ...
- Selenium Web 自动化 - Selenium常用API
Selenium Web 自动化 - Selenium常用API 2016-08-01 目录 1 对浏览器操作 1.1 用webdriver打开一个浏览器 1.2 最大化浏览器&关闭浏 ...
- Selenium Web 自动化 - 项目实战(三)
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述 2 框架更改总览 3 框架更改详解 3.1 解析新增页面目录 3.2 解析新增测试用例目录 ...
- Selenium Web 自动化 - 如何找到元素
Selenium Web 自动化 - 如何找到元素 2016-07-29 1. 什么是元素? 元素:http://www.w3school.com.cn/html/html_elements.asp ...
- Python+selenium Web自动化持续更新
保姆入门级Web自动化学习资料 前言 Web自动化环境搭建 软件准备 开始环境搭建 浏览器和驱动下载 谷歌浏览器驱动版本对应以及下载: edge浏览器驱动版本对应以及下载: ie浏览器驱动官方地址: ...
- python selenium - web自动化环境搭建
前提: 安装python环境. 参考另一篇博文:https://www.cnblogs.com/Simple-Small/p/9179061.html web自动化:实现代码驱动浏览器进行点点点的操作 ...
- python web自动化元素定位_快速掌握Python Selenium Web自动化:三)在Selenium中定位查找网页元素的诸类方法...
使用Selenium进行自动化操作,首先要做的就是通过webdriver的get()方法打开一个URL链接. 在打开链接,完成页面加载之后,就可以通过Selenium提供的接口,在页面上进行各种操作了 ...
- selenium 反爬虫之跳过滑块验证
某宝有自己对selenium的验证,在使用selenium自动化登录t宝时,往往会出现滑块验证失败问题. 原因 首先很多熟悉JS的人都知道t宝会检测window.navigator.webdriver ...
- python模拟滑动滑块验证
滑动滑块的两个关键点为:(1)生成滑动轨迹(2)控制滑动按钮进行滑动 (1)根据要滑动的距离生成滑动轨迹,此处是模拟人为滑动:先加速滑动滑块,再减速滑动滑块.代码如下: 其中distance参数就是要 ...
- RobotFramework自动化测试框架-Selenium Web自动化(-)-Open Browser和Close Browser
Selenium出来已经有很多年了,从最初的Selenium1到后来的Selenium2,也变得越来越成熟,而且也已经被很多公司广泛使用.Selenium发展的过程中,分了很多模块,这里我们主要介绍W ...
最新文章
- 往文件中写数据--增量
- 是学习Java还是Python?一张图告诉你!
- C# - winform使用Dictionary的时候,程序一闪而过!
- 优先队列详解priority_queue .RP
- vsftpd服务详解
- 新车可以无牌上路7天_无牌农用拖拉机车斗载人上路?交警说了,不可以!
- 增霸卡传输掉线/无法登录/再次登录时间长
- 计算机学生英语面试自我介绍ppt,大学生英语自我介绍ppt.doc
- QPainter详解
- Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
- Java制作简易计算器
- C#开发微信订阅号、服务号视频教程-翟东平-专题视频课程
- 写了一个svg七巧板拼图的小东西
- Solidity 生成Java类
- android 读取excel 文件
- JAVA-打印星号三角形
- Python 函数 | zip 函数详解
- 什么是web前端开发工程师?主要做什么的?
- 【系统之家首发】Ghost_Windows7_sp1_Ultimate_x86V2011.10.10 【OEM 通用版】Windows7旗舰版好人一个出品
- appium报错:Original error: socket hang up