2015-12-05 3 views
1

Я использую осколок, чтобы купить мои билеты на веб-сайте, и использую Browser(chrome). Страница, которую я хочу проанализировать, - https://kyfw.12306.cn/otn/leftTicket/init, Я хочу щелкнуть u"预定" от splinter.ElementDoesNotExist в осколке

Но когда я запускаю код:

b.find_by_text(u"预定")[order-1].click() 

Он показывает следующее сообщение об ошибке:

Traceback (most recent call last): 
    File "/Users/liangxiaoyu/PycharmProjects/shiyanlou/qiangpiao.py", line 54, in <module> 
    getTicket() 
    File "/Users/liangxiaoyu/PycharmProjects/shiyanlou/qiangpiao.py", line 44, in getTicket 
    b.find_by_text(u"预定")[0].click() 
    File "/usr/local/lib/python2.7/site-packages/splinter/element_list.py", line 44, in __getitem__ 
    self.find_by, self.query)) 
splinter.exceptions.ElementDoesNotExist 

Я действительно уверен, что страница содержит текст "预定", так что я могу сделать?

+1

какой сайт вы тестируете? – chenzhongpu

+0

Я использую сайт 12306 для тестирования, и я встретил проблему ~~~ – Liangxiaoyu

+0

Какой сайт вы тестируете, было бы полезно ответить на ваш вопрос, пожалуйста, отредактируйте свой вопрос и добавьте его в свой вопрос (помните, добавьте полный URL-адрес). –

ответ

0

Следует обратить внимание на то, что кнопка 预订 появится только после входа в систему и поиска по конкретному поезду, указав данные для вылета, назначения и путешествия. После входа в систему вы можете попробовать следующий код.

from splinter import Browser 

    browser = Browser('chrome') 
    # Visit URL 
    url = "https://kyfw.12306.cn/otn/leftTicket/init" 
    browser.visit(url) 
    # Find and click the '预订' button 
    button = browser.find_by_text('预订')[order-1] 
    # Interact with elements 
    button.click() 
Смежные вопросы