模拟滑动验证码代码:
# 获取iframe-id,切换浏览器标签定位的作用域bro.switch_to.frame('tcaptcha_iframe')div = bro.find_element(By.ID, 'tcaptcha_drag_thumb')# 动作链action = ActionChains(bro)# 点击长按指定的标签action.click_and_hold(div)# 水平拖动170xp位置action.move_by_offset(180, 0).perform()div.click()# 释放动作链action.release().perform()
源码:
from selenium import webdriverfrom time import sleepfrom selenium.webdriver import ActionChains # 动物链from mon.by import By # find_element(By.xx,'xx')from selenium.webdriver import ChromeOptions # 规避检测def login():# 切换到登录标签bro.switch_to.frame('login_frame')# 定位到帐号登录标签bro.find_element(By.ID, 'switcher_plogin').click()sleep(1)# 定位到账号密码标签及输入bro.find_element(By.ID, 'u').send_keys('输入QQ账号')bro.find_element(By.ID, 'p').send_keys('输入QQ密码')# 点击登录btn = bro.find_element(By.ID, 'login_button')btn.click()sleep(1)# 获取iframe-id,切换浏览器标签定位的作用域bro.switch_to.frame('tcaptcha_iframe')div = bro.find_element(By.ID, 'tcaptcha_drag_thumb')# 动作链action = ActionChains(bro)# 点击长按指定的标签action.click_and_hold(div)# 水平拖动170xp位置action.move_by_offset(180, 0).perform()div.click()# 释放动作链action.release().perform()sleep(10)bro.quit()if __name__ == '__main__':# 规避检测options = ChromeOptions()options.add_argument("--disable-blink-features=AutomationControlled")options.add_experimental_option('excludeSwitches', ['enable-automation'])url = '/'bro = webdriver.Chrome(executable_path='./chromedriver.exe',options=options)bro.get(url)login()