2016-06-29 15 views
-3

Ich benutze Roboter-Framework. Ich versuche ein Schlüsselwort zu definieren, das ein Argument eines Link-XPath akzeptiert. Wenn es diesen Link erhält, wird es darauf klicken und wenn es einen Download-Link dann wird es feststellen, ob es eine Datei mit einer Größe größer als Argument 2 istPython-Funktion, die Link überprüft und wenn es ein Download nur erlaubt, wenn es weniger als 5 MB ist

Wenn die Datei bereits heruntergeladen und seine Größe ist größer als das Limit bestanden dann wird der Download abgebrochen. Ich kann den Klick Teil tun, aber ich habe keine Ahnung, wie man die Größe und wenn es eine Download-Funktion und kann auch nicht den Teil abbrechen als seine Windows-Funktion tun und ich mache nur Dinge mit Selen-Webdriver. Die Lösung muss ein Python-Skript verwenden, um die Datei abzufragen, bevor sie den Download durchführt. Da robotframework Python als Coding-Base verwendet, kann der Befehl nicht so geändert werden, dass er diese kleine Optimierung enthält.

Antwort

1

Wenn es diesen Link erhält, wird es darauf klicken und wenn ihr einen Download-Link ...

Sobald Sie auf den Link geklickt haben, wird der Download zu starten. Es ist schon zu spät, um die Größe (Art) zu bestimmen.

Verwenden Sie die HEAD Anfrage - requests.head(...) auf den Link href (die URL); nicht GET Methode. Einer der Header sollte Content-Length in Bytes sein. Wenn dies der Fall ist, können Sie bestimmen, ob Sie die Datei herunterladen möchten oder nicht.

Und Sie müssen die requests library verwenden und das in Ihr Keyword integrieren. Oder die bereits verfügbaren robotframework-httplibrary.