2012-03-30 17 views
0

Ich erstelle ein Python-Skript mit Selenium. Ich möchte einen bestimmten Test ausführen, der den Standardtext eines Textfelds überprüft, wenn die Seite geladen wird. Unten ist mein Code .......AssertionError - Selenium/Python

try: 
        self.assertEqual("Search by template name or category..", sel.get_text("//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em")) 
        logging.info('  PASS: text box text is correct') 
       except Exception: 
        logging.exception('  FAIL: text box text is incorrect') 

Hier ist mein Fehler ......

  self.assertEqual("Search by template name or category..", sel.get_text("//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em")) 
    File "C:\Python27\lib\unittest\case.py", line 509, in assertEqual 
    assertion_func(first, second, msg=msg) 
    File "C:\Python27\lib\unittest\case.py", line 502, in _baseAssertEqual 
    raise self.failureException(msg) 
AssertionError: 'Search by template name or category..' != u'Submitter Requests' 

ich die falsche Funktion Bin?

Antwort

0

Ihre AssertionError besagt, dass die Behauptung, man versucht, (dass die self.assertEqual(...) in Ihrem ersten Codebeispiel ist) fehlgeschlagen:

AssertionError: 'Search by template name or category..' != u'Submitter Requests' 

Diese Behauptung erklärt, dass die Zeichenfolge 'Search by template name or category' von 'Submitter Requests' unterscheidet, was richtig ist ... die Strings sind, in der Tat, anders.

Ich würde Ihren zweiten Parameter zu self.assertEqual überprüfen und stellen Sie sicher, dass Sie die richtige Funktion auswählen.

0

Das sieht so aus, als ob Sie die richtige Funktion verwenden, aber vielleicht führen Sie Ihre Tests nicht in der richtigen Weise durch.

0

Das Problem scheint zu sein, dass Sie nicht das richtige Element zum Vergleichen auswählen. Sie sind das Programm grundsätzlich sagen übereinstimmen, dass „von Vorlagennamen oder Kategorien suchen ..“ ist gleich dem Inhalt von was auch immer in:

//table[@id='pluginToolbarButton_forms']/tbody/tr[2]/td[2]/em 

, offenbar der Inhalt „Einreicher Requests“ sind, also nicht das, was Sie würde erwarten, so dass der Test fehlschlägt (wie es sollte). Möglicherweise wählen Sie nicht das richtige Element mit dieser XPath-Abfrage aus. Vielleicht wäre eine CSS-Abfrage am besten. Sie können über Elementselektoren in Selenium documentation lesen.

Achten Sie auch auf eine Fallstricke: Der von Selenium zurückgegebene Text ist ein Unicode object, und Sie vergleichen es mit einer Zeichenfolge. Dies funktioniert möglicherweise nicht wie erwartet auf Sonderzeichen.

Verwandte Themen