练习js——自动化实现12306火车票查询
作者:互联网
# !/usr/bin/env python3 # -*- coding: utf-8 -*- # @Time : 2019/12/1 09:03 # @Author : "小多肉" # @Email : 1021181701@qq.com # @File : task1127.py # @Software: PyCharm import time from datetime import datetime, timedelta from selenium import webdriver driver = webdriver.Chrome() driver.get("https://www.12306.cn/index/") # 等待出发地选择框出现 # WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,"fromStationText"))) time.sleep(2) #选择出发地 fromStation = '福州' #出发地汉字 fs = 'FZS' # 出发地代码 fromStation_js = """ document.getElementById('fromStation').value = arguments[0]; // 隐藏的出发地元素,value写入出发地代码 var from = document.getElementById('fromStationText'); from.className = "input inp-txt_select"; // 输入出发地后的class改成input inp-txt_select from.value = arguments[1]; """ driver.execute_script(fromStation_js,fs,fromStation) #选择目的地 toStation = '长沙' # 出发地汉字 ts = 'CSQ' # 出发地代码 ele_toStation = driver.find_element_by_id("toStationText") ele_ts = driver.find_element_by_id("toStation") toStation_js = """arguments[1].value=arguments[2]; var to = arguments[0]; to.className = "input inp-txt_select"; to.value = arguments[3]; """ driver.execute_script(toStation_js,ele_toStation,ele_ts,ts,toStation) # 选择出发日期 # 当前日期+10天,转成字符串格式 date = str(datetime.now().date()+timedelta(days=10)) # 使用js修改日期框为可输入状态,传入日期 date_js = """ var date = document.getElementById('train_date'); date.readOnly = false; date.value = arguments[0]; """ driver.execute_script(date_js,date) # WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.ID,"search_one"))) # 点击查询按钮 driver.find_element_by_id("search_one").click() time.sleep(1) driver.quit()
标签:toStation,driver,出发地,js,12306,arguments,date,火车票 来源: https://www.cnblogs.com/momoon/p/12228899.html