selenium鼠标拖动
import time from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver import ActionChains driver = webdriver.Chrome() driver.get("https://www.12306.cn/index/") driver.maximize_window() driver.implicitly_wait(30) # 显式等待可点击后,点击右上角的登录 WebDriverWait(driver, 10, 0.5).until( EC.element_to_be_clickable((By.XPATH, "//a[@id='J-btn-login']")) ).click() # 显式等待可点击后,点击用户名框,输入用户名 WebDriverWait(driver, 10, 0.5).until( EC.element_to_be_clickable((By.XPATH, "//input[@id='J-userName']")) ).click() driver.find_element(by=By.XPATH, value="//input[@id='J-userName']").send_keys("#个人账号#") # 显式等待可点击后,点击密码框,输入密码 WebDriverWait(driver, 10, 0.5).until( EC.element_to_be_clickable((By.XPATH, "//input[@id='J-password']")) ).click() driver.find_element(by=By.XPATH, value="//input[@id='J-password']").send_keys("#账号对应的密码#") print(driver.window_handles) # 用于检查点击登录(验证码弹框出来)前后窗口句柄情况 # 显式等待可点击后,点击登录 WebDriverWait(driver, 10, 0.5).until( EC.element_to_be_clickable((By.XPATH, "//a[text()='立即登录']")) ).click() print(driver.window_handles) # 用于检查点击登录(验证码弹框出来)前后窗口句柄情况 # ------------鼠标拖动操作(拖动验证码滑块为例)------------ # 定位滑块元素 sli_ele = driver.find_element(by=By.XPATH, value="//span[@class='nc_iconfont btn_slide']") # 创建鼠标操作对象 action = ActionChains(driver) # 第一步:在滑块处按住鼠标左键 action.click_and_hold(sli_ele) # 第二步:相对鼠标当前位置进行移动 action.move_by_offset(300, 0) # 第三步:释放鼠标 action.release() # 执行动作 action.perform() time.sleep(5) driver.quit()