2016-04-05 5 views
0

Ich habe eine IndexError wie folgt:Warum die Nummerierung im Format fehlschlägt?

print ("Page {1} not found, {2}: {3}".format(page, sys.exc_info()[0], err)) 

IndexError: tuple index out of range 

Mein Code ist:

wait = WebDriverWait(browser, 10) 
     try:  
      wait.until(EC.visibility_of_element_located((By.ID, "summaries"))) 
     except (TimeoutException, ConnectionRefusedError) as err:#not a TimeoutError, not the basic set of exceptions 

      print ("Page {1} not found, {2}: {3}".format(page, sys.exc_info()[0], err)) 
      file.write("Page {} not found, {}: {}".format(page, sys.exc_info()[0], err)) 
      #file.write(str(summary)) 
      continue#next 

ich es mit gelöst:

print ("Page {} not found, {}: {}".format(page, sys.exc_info()[0], err)) 

Aber ich verstehe nicht, warum habe ich IndexError in der erste Platz, da {3} existiert?

Bedeutet das, dass sys.exc_info()[0] ein Tupel ist? Warum, wenn ich (type(sys.exc_info()[0]) drucke, ist der zurückgegebene Wert <class 'type'>? Weil exc_info[0] gemacht wird, um die Art des Fehlers zurückzugeben?

+4

Indizes mit 0 beginnen, nicht 1. – Selcuk

+1

sollten Sie verwenden '" Seite {0}. .. {1} ... {2} "' anstelle von '" Page {1} ... {2} ... {3} "' – Andy

Antwort

1

Genau wie es in den Kommentaren erwähnt worden ist und wie Sie Index mit Listen, die Indizierung beginnt immer von 0:

print ("Page {0} not found, {1}: {2}".format(page, sys.exc_info()[0], err)) 
+0

Wow, tut mir leid, In der Tat! Es war so offensichtlich, dass ich es nicht sehen konnte. Vielen Dank! –

Verwandte Themen