12306模拟登陆


from selenium import webdriver
from time import sleep
from selenium.webdriver import ActionChains
from selenium.webdriver import ChromeOptions

#设置浏览器防止检测出session
option = ChromeOptions()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_argument("--disable-blink-features=AutomationControlled")

#chromrdriver
bro = webdriver.Chrome(executable_path="./chromedriver.exe",chrome_options=option)
# 获取页面数据
bro.get("https://kyfw.12306.cn/otn/resources/login.html")

# user password login_click id选择器定位
user_name = bro.find_element_by_id("J-userName")
user_password = bro.find_element_by_id("J-password")
login = bro.find_element_by_id("J-login")
sleep(2)
user_name.send_keys("xxxxxx")
sleep(2)
user_password.send_keys("xxxxxx")
sleep(2)
login.click()
sleep(2)#此处不停,定位不到滑块

# 定位滑块
span = bro.find_element_by_id("nc_1__bg")
action = ActionChains(bro)  # 实例化一个动作链对象
action.click_and_hold(span)  # 长按且点击

for i in range(5):
    action.move_by_offset(60, 0).perform()  # perform立即执行动作链操作
    sleep(0.1)
action.release()  # 释放动作链
sleep(5)

bro.quit()