from selenium import webdriver
import time
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.action_chains import ActionChains
def wait_response_time(chrome,waittime,func):
# 返回 func执行结果
return WebDriverWait(chrome,waittime).until(func)
def automatic_login(name,pwd,url):
chrome = webdriver.Chrome()
chrome.get(url)
time.sleep(2)
chrome.maximize_window()
# time.sleep(2)
# chrome.find_element_by_xpath("/html/body/div[3]/div[2]/div[3]/div/div").click()
############## 第二种方法 设置时间延迟
# login_btn_lable = wait_response_time(chrome,5,
# lambda chrome: chrome.find_element_by_xpath("/html/body/div[3]/div[2]/div[3]/div/div"))
# login_btn_lable.click() ## 利用函数设置等待响应时间
#chrome.find_element_by_link_text("账号登录").click()
chrome.find_element_by_xpath("/html/body/div[2]/div[2]/ul/li[2]/a").click()
time.sleep(1)
name_label = chrome.find_element_by_id("J-userName")
name_label.send_keys(" ") # 防止发送不成功
name_label.clear()
name_label.send_keys(name)
pwd_label = chrome.find_element_by_id("J-password")
pwd_label.clear()
pwd_label.send_keys(pwd)
print ("等待验证码,自行输入...")
time.sleep(10)
time.sleep(10)
chrome.find_element_by_id("chepiaodingdan").click()
time.sleep(10)
xf = chrome.find_element_by_link_text("车票")
ActionChains(chrome).move_to_element(xf).perform() # 模拟用户悬浮
chrome.find_element_by_css_selector("#J-chepiao > div > div:nth-child(1) > ul > li.nav_dan > a").click()
#chrome.close()
time.sleep(10)
cookies1 = {'name':'_jc_save_fromStation','value':'%u9E64%u58C1%2CHAF'}
cookies2 = {'name':'_jc_save_toStation','value':'%u90D1%u5DDE%2CZZF'}
cookies3 = {'name':'_jc_save_fromDate','value':'2019-02-05'}
chrome.add_cookie(cookie_dict=cookies1)
chrome.add_cookie(cookie_dict=cookies2)
chrome.add_cookie(cookie_dict=cookies3)
time.sleep(10)
chrome.refresh()
count=0
order=3
chrome.find_element_by_link_text("查询").click()
chrome.find_element_by_link_text("预订")[3].click()
print (u"还没开始预订")
print (u"开始预订...")
if __name__ == "__main__":
name = "xx"
pwd = "xx"
url = "https://kyfw.12306.cn/otn/resources/login.html"
automatic_login(name,pwd,url)