2017-02-14 3 views
1

Ich versuche, Text von einem Tag in Chromedriver mit Selen in Python zu bekommen. Mein Code läuft korrekt, aber wenn es kein Tag gibt, das ich bekommen sollte, löst das Skript einen Fehler aus und stoppt. Der Fehler:Python - Exception-Behandlung für Raise Exception_Class (Nachricht, Bildschirm, 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) 

Ich mag Ausnahme machen, so dass, wenn Selen den Tag nicht finden kann, wird es eine Nachricht drucken und das Skript nicht zu stoppen. Mein Code:

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" 

Ich weiß nicht, was ich Ausnahme soll nur diesen Fehler umgehen verwenden. Wenn ich es gedruckt wird nur except verwenden „Es gibt keine Beschreibung über diesen Ort“ zu auch dort ist der span-Tag

Antwort

0

Fügen Sie einfach diese, um Ihren Import Abschnitt:

from selenium.common.exceptions import NoSuchElementException 

und die try/except Teil ist wie folgt: :

try: 
    # do stuff 

except NoSuchElementException as e: 
    print e 
0

für außer Gebrauch

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

Verwandte Themen