(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();
		// 隐式等待10s
		driver.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截图就可以查看这个拖动框的长宽),上下不需要动.接着直接运行你会发现他可以自己模拟鼠标拖动啦.

  • 6
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
基于JavaSeleniumWeb UI自动化测试框架是一种自动化测试工具,可以用于测试Web界面的功能和用户交互。以下是该框架的一些关键特性和优势。 1. 支持多浏览器和平台:这个框架可以在各种主流浏览器(如Chrome、Firefox、Safari等)和操作系统(如Windows、Mac、Linux等)上运行,确保网站在不同环境下的兼容性。 2. 灵活的对象识别:通过使用Selenium的定位策略(如ID、CSS选择器、XPath等),该框架可以准确地识别页面上的元素,从而使测试用例的编写更加简单和可靠。 3. 数据驱动测试:该框架支持数据驱动测试,可以从外部源(例如Excel、CSV等)加载测试数据,并对每个数据组合执行相同的测试用例,从而提高测试效率和可重复性。 4. 测试报告和日志:这个框架提供了详细的测试报告和日志记录功能。测试报告会提供关键的测试执行结果,如成功率、失败率和跳过率,并展示每个用例的执行状态。日志记录则可以帮助开发人员在调试期间查找问题和进行错误分析。 5. 高可扩展性:该框架可以根据项目需要进行定制和扩展。开发人员可以编写自定义函数和库,以便进行特定的测试操作验证。 总之,基于JavaSeleniumWeb UI自动化测试框架提供了一种可靠、高效和可扩展的方式来测试Web界面。它可以帮助团队快速检测和修复潜在的缺陷,提高软件质量和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值