from seleniumimport webdriver
from selenium.webdriver.support.uiimport Select
#打开浏览器
driver = webdriver.Chrome()
#浏览器最大化
driver.maximize_window()
#设置隐式等待
driver.implicitly_wait(10)
#打开网页
driver.get('https://www.12306.cn/index/')
#出发地
fromStatio = driver.find_element_by_id('fromStationText')
fromStatio.click()#点击
fromStatio.send_keys("上海")
#选择 上海虹桥
driver.find_element_by_id('citem_2').click()
#目的地
toStation = driver.find_element_by_id('toStationText')
toStation.click()
#输入南京
toStation.send_keys("南京")
#选择 南京南
driver.find_element_by_id('citem_1').click()
#选择日期 5月10号
driver.find_element_by_id('train_date').click()
driver.find_element_by_xpath('//div[@class="cal cal-right"]/div[2]/div[10]').click()
#点击 查询 按钮
driver.find_element_by_id('search_one').click()
#切换 窗口
all_handle = driver.window_handles
driver.switch_to.window(all_handle[1])
#进入页面后取消掉页面提示信息
driver.find_element_by_id('qd_closeDefaultWarningWindowDialog_id').click()
#选择 高铁
driver.find_element_by_css_selector('input[value="G"]').click()
#选择 动车
driver.find_element_by_css_selector('input[value="D"]').click()
#选择 出发时间段
s1 = Select(driver.find_element_by_id('cc_start_time'))
s1.select_by_value("06001200")#选择6-12
#取出 车次信息
#enumerate 可以同时取出循环的次数,以及值
for idx,valuein enumerate(driver.find_elements_by_xpath('//tbody[@id="queryLeftTable"]/tr[@class]/td[4]')):
name = value.text
if name =="有" or name.isdigit():
xpath =f'//tbody[@id="queryLeftTable"]/tr[@class][{idx+1}]/td[1]/div/div[1]//a'
print(driver.find_element_by_xpath(xpath).text)
else:
continue