(java+selenium)Web自动化12306模拟人工滑块验证
生活随笔
收集整理的這篇文章主要介紹了
(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模拟人工滑块验证的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 叉积求点到平面距离_用叉乘求法向量.do
- 下一篇: 鸿蒙系统发布会是什么时候,鸿蒙系统2.0