10sec Umfrage - Bitte um kurze Antwort!

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.

Wie würdet ihr einen Befehl nennen, der Tastendrücke simuliert?

type_keys
5
50%
press
2
20%
type
1
10%
enter
2
20%
 
Insgesamt abgegebene Stimmen: 10
BlackJack

@michael.herrmann: Ist halt zur Fehlersuche oder beim erkunden von fremden APIs sehr nützlich den Typ von einem ”unbekannten” Objekt ermitteln zu können. Unerfahrene Programmierer verwenden es manchmal um auf Datentypen zu testen, wo man eher `isinstance()` verwenden sollte, wenn man sich einen Typtest nicht verkneifen kann.
michael.herrmann
User
Beiträge: 17
Registriert: Dienstag 20. November 2012, 12:43

@BlackJack: Hi, ja, ich weiß schon, wofür 'type' normalerweise gut und nützlich ist. Was mich interessieren würde ist welcher Befehlsname im Kontext von GUI-Automatisierung für euch am logischsten wäre. Wenn ich so direkt fragen darf: Hast du zB eine Präferenz?
BlackJack

@michael.herrmann: Nicht wirklich. Ausser das `type()` bei Python ausfällt. :-)
michael.herrmann
User
Beiträge: 17
Registriert: Dienstag 20. November 2012, 12:43

OK ;-) Danke :-)
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

Natürlich könnte man `type` überschreiben, aber dann würde in einem Editor das type farblich anders hervorgehoben als andere Befehle.

In dem Tutorial benutzt ihr enter und type. Was ist der unterschied?


Meine Favoriten wären: type, insert, type_text, insert_text, enter
JonasR
User
Beiträge: 251
Registriert: Mittwoch 12. Mai 2010, 13:59

@Sr4l die frage ob es geht oder nicht ist wohl nicht gestellt, eher ob man es sollte... und da sträuben sich bei mir die Haare, wenn man die internen Funktionen mit komplett anderen überschreibt. Soetwas für irgendwann immer zu unvorhergesehenen Fehlern.

Ich wäre für type_keys, das spricht am ehesten aus was es macht.

Edit: Fehler sollten natürlich immer unvorhergesehen sein :D:D
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Wenn es unbedingt kurz sein soll, wie wärs mit keys()? type() würde ich nicht überschreiben, wenn Du nahe an Python bleiben willst. Als längere Alternativen finde ich type_keys() oder send_keys() selbsterklärend.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Bei ``keys()`` denke ich an die ``keys``-Methode und die gibt Sachen zurück. Würde ich in einer API seltsam finden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
michael.herrmann
User
Beiträge: 17
Registriert: Dienstag 20. November 2012, 12:43

Grüß' euch nochmal,

@Sr4l: Im Moment sind 'enter' und 'type' Synonyme, was leider schon zu einigen Verwirrungen geführt hat. Das ist mit ein Grund, warum wir die Namen verbessern wollen. Danke für deine Vorschläge.

Dass man type() nicht überschreiben sollte wie JonasR und jerch meinen scheint eine verbreitete Ansicht zu sein. Auch wenn es wirklich schade ist weil type an sich ein gutes Wort wäre.

Wenn ich Leonidas richtig verstanden habe hat keys() einen ähnlichen wenn auch nicht ganz so schlimmen Nachteil wie type()...


Wir haben aufgrund eurer Inputs jetzt einmal im Zusammenhang mit dem Rest unserer API zu experimentieren begonnen. Ich zeig' euch morgen die Ergebnisse!

Nochmals vielen Dank!
Michi
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Auch wenn es ebenfalls ein builtin ueberschreibt, wuerde ich ``input`` sagen.

Aber nur, wenn ``enter`` keine Option ist, das finde ich naemlich weit besser und den Bedarf fuer den Alias sehe ich auch nicht.
FidoroChun
User
Beiträge: 10
Registriert: Montag 19. November 2012, 19:20
Wohnort: Braunschweig

Hmm gab mal so einen Erweiterung die hieß "Sendkeys" oder so... wurde aber nur bis 2.6 geupgradet. Vllt, kann man ja daran arbeiten...
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Ach, da gibt es doch nur einen offensichtlichen richtigen Namen: kbdwrt :lol:

Ich würde type_keys verwenden, da sieht man auf anhieb was passiert.
Das Leben ist wie ein Tennisball.
michael.herrmann
User
Beiträge: 17
Registriert: Dienstag 20. November 2012, 12:43

Hi nochmal,

wir sind uns jetzt ziemlich sicher, dass wir unsere ursprüngliche Funktion `type` in zwei Funktionen, 'press' und 'enter' aufsplitten wollen. 'press' soll ausschließlich zum Drücken von Tastenkombinationen verwendet werden:

Code: Alles auswählen

press(ENTER)
press(CTRL + 'a')
eventuell auch, um mehrere Tasten hintereinander zu drücken, zB als um ein Menü zu öffnen:

Code: Alles auswählen

press(ALT + 'f', 's')
'enter' hingegen soll für die Eingabe von längeren Plaintext-Strings verwendet werden können:

Code: Alles auswählen

enter("Hello World!")
Das Hauptargument für diese beiden Namen ist, dass sie schön kurz sind und `type` nicht überschreiben. Ein weiterer Grund ist, dass das Hauptziel unserer API darin besteht, sich zu lesen, als würde man einem Menschen, dem man über die Schulter auf den Bildschirm schaut Anweisungen geben. Und hier würde man auf Englisch nun mal einfach

Code: Alles auswählen

press(ENTER)
sagen.

Bezüglich BlackJack's Anmerkung, dass man sich bei 'press' auch eine Funktion erwarten würde, die die Taste wieder loslässt muss man sagen, dass bei der Namenswahl sicher ein bestimmtes Risiko dafür besteht. Jedoch sollte die Bedeutung hoffentlich klar sein, sobald man irgendwo mal

Code: Alles auswählen

press(ENTER)
gelesen hat.

Man könnte behaupten, der Vorschlag würde gegen das aktuelle Abstimmungsergebnis von type_keys mit 5 und press und enter mit jeweils 2 Stimmen gehen. Auf der anderen Seite jedoch haben wir durch die Auftrennung von `type` in zwei Funktionen in gewissem Sinne die ursprüngliche Fragestellung geändert. Zusätzlich haben press und enter zusammen 4 Stimmen, also fast gleich viele wie type_keys ;)

Was haltet ihr davon?

lG
michael.herrmann
User
Beiträge: 17
Registriert: Dienstag 20. November 2012, 12:43

Hi nochmal,

wir haben uns jetzt für eine Version mit

Code: Alles auswählen

write
statt

Code: Alles auswählen

enter
entschieden: http://www.getautoma.com/blog/New-versi ... proved-API

Nochmals vielen Dank für eure Hilfe!

LG
Antworten