2017-02-14 15 views
1

Я пытаюсь получить текст из тега в хронике с селеном в python. Мой код работает правильно, но когда нет тега, который я должен получить, сценарий вызывает ошибку и останавливается. Ошибка:Python - Сделать обработку исключений для повышения exception_class (message, screen, stacktrace)

raise exception_class(message, screen, stacktrace) 
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//span[@class="section-facts-description-text"]"} 
    (Session info: chrome=56.0.2924.87) 
    (Driver info: chromedriver=2.27.440174(e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 10.0.14393 x86_64) 

Я хочу сделать исключение, поэтому, когда селен не может найти метку, он будет выводить сообщение и не остановить сценарий. Мой код:

import os 
import sys 
from selenium import webdriver 

def findLocation(location): 
    browser = webdriver.Chrome() 
    print "please wait, I'll show you where "+location+" is" 
    browser.get("https://www.google.co.id/maps/place/"+location+"/") 
    try: 
     elem = browser.find_element_by_xpath('//span[@class="section-facts-description-text"]') 
     desc = elem.text 
     print str(desc) 
    except:  
     print "There's no description about this location" 

Я не знаю, какое исключение я должен использовать для обработки именно этой ошибки. Если я использую только except он будет печатать «Там нет описания об этом месте» слишком даже есть тот промежуток тег

ответ

0

Просто добавьте в ваш раздел импорта:

from selenium.common.exceptions import NoSuchElementException 

, И попытки/за исключением части выглядит следующим образом :

try: 
    # do stuff 

except NoSuchElementException as e: 
    print e 
0

за исключением использования

except Exception: print "There's no description about this location"