selenium-xpath选择定位元素练习12306选择车次

打开 12306 网站  https://kyfw.12306.cn/otn/leftTicket/init

 

出发城市 填写 ‘南京南’, 到达城市 填写 ‘杭州东’

注意输入城市名前,一定要先点击一下输入框,否则查不到。

而且输入城市名最后要包含一个回车符,否则输入框里面会自动清除

 

发车时间 选 06:00--12:00

 

发车日期选当前时间的下一天,也就是日期标签栏的,第二个标签

 

我们要查找的是所有 二等座还有票的车次,打印出这些有票的车次的信息(这里可以用xpath),结果如下:

 

G7641

G1505

G7393

G7689

 

 

 

 

 

 

from selenium import webdriver
from selenium.webdriver.support.ui import Select#Select实例化 先导入select类
driver = webdriver.Chrome(r"D:\for myself\Google\Chrome\Application\chromedriver.exe")
driver.implicitly_wait(10)
driver.get('https://kyfw.12306.cn/otn/leftTicket/init')
fromEle=driver.find_element_by_id('fromStationText')
fromEle.click()
fromEle.clear()
fromEle.send_keys(u'南京南\n')
toEle=driver.find_element_by_id('toStationText')

toEle.click()
toEle.clear()
toEle.send_keys(u'杭州东\n')
#选择发车时间
timeSelect=Select(driver.find_element_by_id('cc_start_time'))
#timeSelect.select_by_visible_text('06:00--12:00')
timeSelect.select_by_value('06001200')
#选择出发日期
driver.find_element_by_css_selector('#date_range li:nth-child(2)').click()
#点击查询
#driver.find_element_by_id('query_ticket').click()
print('\n\n\n===============================\n\n\n')
theTrainLines = driver.find_elements_by_css_selector('#queryLeftTable > tr')


for one in theTrainLines:
    secondlevelseat = one.find_elements_by_css_selector('td:nth-of-type(4)[class]')
    if secondlevelseat:
        print (one.find_element_by_css_selector('td:nth-of-type(1) a').text)
driver.implicitly_wait(10)
#xpath



driver.quit()

# 方法二:用xpath实现获取二等座有票的车次信息

print('\n\n\n===============================\n\n\n')

xpath ='//*[@id="queryLeftTable"]//td[4][@class]/../td[1]//a'

theTrains = driver.find_elements_by_xpath(xpath)

for one in theTrains:

    print (one.text)

猜你喜欢

转载自www.cnblogs.com/iamshasha/p/11118426.html
今日推荐