Java 硬核學習指南 從零基礎進階大廠 | Java2Top by 小龍coding。 原創不易,請勿抄襲,違者必究! 背景故事 空暇之餘,經常有很多粉絲、學弟學妹問我 "如何學習 Java,什麼時候學? 學什麼? 有沒有相關資料資源推薦? 網上各自路線太多太雜,不知道究竟學什麼? 哪裡該學哪裡可 ...
參考:https://blog.csdn.net/m0_54490473/article/details/122751814
解決了個主要問題,滑塊驗證錯誤。
文件由:vscode 編寫,瀏覽器驅動為 EDGE.
驅動下載地址:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
# !/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author: Aixiu
# @Time : 2022/10/17 17:48:24
from selenium import webdriver
from selenium.webdriver.edge.service import Service
# 無頭Edge瀏覽器庫及規避檢測
from selenium.webdriver.edge.options import Options
# 導入動作鏈對應的類
from selenium.webdriver import ActionChains
import time
# 創建一個參數對象,用來控制 Edge以無界面模式打開
edge_options = Options()
# 反檢測設置 #
# 規避被檢測到的風險
# 開啟開發者模式
# option = EdgeOptions()
edge_options.add_experimental_option('excludeSwitches', ['enable-automation'])
# 去掉:瀏覽器上方有“Chrome正受到自動測試軟體的控制
edge_options.add_experimental_option("detach", True)
# 禁用啟用Blink運行時的功能
edge_options.add_argument('--disable-blink-features=AutomationControlled')
# 將參數傳給瀏覽器 (options=edge_options)
bro = webdriver.Edge(service=Service('./msedgedriver.exe'), options=edge_options)
bro.get('https://kyfw.12306.cn/otn/resources/login.html')
# 解決特征識別, 用來解決滑塊出錯,驗證問題
script = 'Object.defineProperty(navigator, "webdriver", {get: () => false,});'
bro.execute_script(script)
# 根據id獲取用戶賬號輸入框、密碼輸入框,並輸入賬號密碼
time.sleep(2)
username_tag = bro.find_element(by='id', value='J-userName').send_keys('改為你的用戶名')
time.sleep(2)
password_tag = bro.find_element(by='id', value='J-password').send_keys('改為你的密碼')
# 根據id獲取登錄按鈕並點擊
login_btn = bro.find_element(by='id', value='J-login').click()
# 儘量休眠長一點,不然,代碼難以定位到滑塊
time.sleep(2)
span = bro.find_element(by='id', value='nc_1_n1z')
# 定義動作鏈,點擊並拖拽
aco = ActionChains(bro)
# 點擊並長按
aco.click_and_hold(span)
#perform()立即執行動作鏈操作
for i in range(10):
aco.move_by_offset(36,0).perform()
time.sleep(0.3)
# 釋放動作鏈
aco.release()
time.sleep(2)
# 點擊登錄後的彈窗 確定 按鈕
ok_btn = bro.find_element(by='class name', value='ok').click()
time.sleep(5)
bro.quit()