ausführen Roboter Schlüsselwort aus python mit robotframework api
Schreiben komplexer Roboter-keywords in der Roboter-Sprache ist manchmal sehr zeitaufwendig, da Roboter-Sprache ist keine echte Programmiersprache ist. Ich würde gerne schreiben, meine keywords in python und enthüllen nur einfache html-Tabellen in robotframework Sprache. Das problem ist, dass wir bereits eine Menge von low-level-Roboter keywords geschrieben, in der Roboter-Sprache (in .Roboter und .txt-Dateien). Ist es möglich ausführen, die keywords aus dem python-code mit dem robotframework python-api ?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, es ist möglich. In Ihrem python-code Sie können einen Verweis auf die BuiltIn-Bibliothek, und verwenden Sie dann den Keyword-Schlüsselwort, um ausführen alle Keywords, die Sie wollen.
Zum Beispiel, könnten Sie schreiben, ein python-Schlüsselwort, das nimmt einem anderen Stichwort als argument und führt es aus. Der folgende sein könnte, wie Sie es tun in python:
Können Sie dann sagen, dieses Stichwort zu nennen jedem anderen Stichwort. Hier ist ein Beispiel-suite, die ein Schlüsselwort geschrieben, in der Roboter, und dann hat Sie den python-code ausführen:
Beachten Sie, wie der Testfall weist den
call_keyword
- Methode zum ausführen der keyword -Example Keyword
. Natürlich Sie nicht haben pass in ein Schlüsselwort. Der entscheidende Punkt ist, um einen Verweis auf die BuiltIn-Bibliothek, die dann ermöglicht Ihnen das aufrufen einer beliebigen Methode in die Bibliothek.Dies ist dokumentiert in dem robot framework user guide, im Abschnitt Mit Robot Framework ' s Interner Module. Genauer gesagt, finden Sie im Abschnitt Mit BuiltIn-Bibliothek.
Beachten Sie, dass die Dokumentation besagt, Sie müssen rufen Sie register_run_keyword, wenn Ihr keyword ruft das
run_keyword
Methode. Ich werde nicht zu vervielfältigen, die Unterlagen hier. Sie erhalten die Dokumentation, indem Sie in der BuiltIn-Modul selbst, oder führen Sie den folgenden code in einer interaktiven python-session:register_run_keyword
eine Funktion wiefoo(first=1, second=2, third=3)
- und call -Foo | third=1
Sie tatsächlich ausführenfoo("third=1", 2, 3)
. Dies könnte ein Teil, warum es ist veraltet Roboter 3.0.