Seite 1 von 1
pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 14:54
von Campionissimo
Hallo,
ich möchte mit pywinauto eine Anwendung starten, buttons betätigen und was schreiben sowie anklicken.
Problem!
z.B. Beim Editor funktioniert alles.
Aber bei einer anderen Oberfläche nicht.
Das wäre mein Code für Notepad
Code: Alles auswählen
from pywinauto import application
app = application.Application.start("notepad.exe")
app.Notepad
app.Notepad.MenuSelect("Datei->Speichernunter")
app.Speichernunter.SpeicherninComboBox.Select("Desktop")
app.Speichernunter.DateinameEdit.SetEditText("dfgsdfg.txt")
app.Speichernunter.CodierungComboBox.Select("Unicode")
#app.Speichernunter.DateitypComboBox.Select("Alle Dateien")
app.SpeichernUnter.Speichern.Click()
Weiß wer warum es mit dem editor funktioniert und nicht mit anderen Oberflächen.
Meine Vermutung ist das es keine Windowsoberfläche ist und das irgendwer programmiert hat
Vielleicht weiß ja jemand was.
Danke
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 15:05
von sparrow
Campionissimo hat geschrieben:Meine Vermutung ist das es keine Windowsoberfläche ist und das irgendwer programmiert hat
Das Programm das du bedienen willst? Wäre es dann vielleicht hilfreich uns das zu nennen?
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 15:13
von Campionissimo
Ja es ist kein Windowsprogramm, sondern von einem programmiert worden. Das kennt keiner!
Aber wie könnte ich es schaffen diese buttons zu drücken oder was zu schreiben.
Gruß
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 15:15
von /me
Campionissimo hat geschrieben:Ja es ist kein Windowsprogramm, sondern von einem programmiert worden
Ich verstehe jedes einzelne Wort, den Satz aber nicht.
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 15:31
von Campionissimo
Das Programm das ich bedienen will ist kein Windowsprogramm.
Also von jemanden programmiert worden.
Also kein öffentliches Tool.
Besser

Trotzdem noch die Frage wie ich es fernsteuern kann.
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 16:27
von Xynon1
Logisches Resultat also:
- Windowsprogramme werden nicht programmiert (und fallen vom Himmel)
- Alles was von "jemanden" programmiert wurde ist nicht öffentlich
- oder alles was kein Windowsprogramm ist, ist nicht öffentlich
Ich bin verwirrt.
So zurück zum Thema welches Programm willst du steuern, läuft dieses überhaupt unter Windows(ist schließlich die Bedingung von pywinauto) und eventuell könntest du mal beschreiben was du dort nicht machen kannst bzw. was für ein Fehler ausgegeben wird.
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 16:59
von Campionissimo
Ja logisch fallen die vom Himmel.
ich mein eigentlich das hat jemand programmiert für ein bestimmtes Produkt, dass nicht für jedermann zugänglich ist.
Natürlich sind viele Sachen öffentlich, aber auch manche nicht;)
Aber egal.
Es läuft unter windows. Wenn ich den Code oben anpasse funktioniert es einfach nicht und gibt diese Fehlermeldung zurück:
Code: Alles auswählen
Traceback (most recent call last):
AttributeError: 'function' object has no attribute 'delete'
und Delete heißt der Button
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 17:13
von EyDu
Hallo.
Du solltest deine Post selber noch einmal lesen und dich fragen, ob sie verständlich sind und genügend Information enthalten, um dir zu helfen

Zeige doch einfach den richtigen Code und nicht irgend welche Beispiele, sonst endet das nur in überflüssigen Spekulationen.
Sebastian
Re: pywinauto combobox Funktion
Verfasst: Montag 16. Mai 2011, 19:24
von Campionissimo
Das ist der code da oben, nur andere boxennamen.
Delete ist ein Button
Jetzt die Fehlermeldung
Code: Alles auswählen
Traceback (most recent call last):
AttributeError: 'function' object has no attribute 'delete'
und Delete heißt der Button
Da wahrscheinlich der button von der Oberfläche nicht richtig mit dem Code verknüpft ist kann den anscheinend nicht richtig ansprechen
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 03:54
von Zap
Wenn du deine Fehlermeldung richtig lesen würdest, würdest du feststellen, dass sie fogendes sagt: "Das Funktionsobjekt hat kein Attribut 'delete'".
Demnach ist "Connect" eine Funktion die man wahrscheinlich in irgendeiner Form aufrufen müsste.
Warum machst du es allen anderen und auch dir so schwer und zeigst nicht deinen kompletten Code? In deinem "Code da oben" sehe ich keinen Aufruf von Connect.
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 07:18
von Campionissimo
Also das ist mein Code:
Code: Alles auswählen
from pywinauto import application
app = application.Application()
app.start("FuTe.exe")
app.FuTe
app.FuTe.MenuSelect("FuTe->Connect")
app.Connect.PortComboBox.Select("1")
app.Connect.BaudrateComboBox.Select("115200")
app.Connect.LogfilenameEdit.SetEditText("C:\ewrewrwer")
app.Connect.ConnectClick()
- Das Programm heisst FuTe
- Ich öffne die Datei und das Funktioniert

- Dann wähle ich im Menü Connect aus und das funktioniert auch
- Jetzt kommt ein neues Fenster Connect
Wo ich was einstellen kann
- Den Port auf 1
- Die Baudrate auf 115200
- Und wo ich die Datei hinspeichern möchte
- Dann noch den Button connect für die Verbindung
Fehlermeldung für den Button Connect
Code: Alles auswählen
Traceback (most recent call last):
AttributeError: 'function' object has no attribute 'Connect'
Danke
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 09:15
von Xynon1
Ich würde jetzt einfach mal vermuten das geht so nicht, weil "Connect", "Connect_", "connect" und "connect_" von pywinauto selbst vorbelegt sind, nicht überschrieben werden und daher nicht als Attribute gesetzt werden können.
Versuch mal Connect als Keyword zunutzen, sprich app["Connect"].PortComboBox.Select("1"). Ansonsten musst du die Auswahl noch etwas weiter eingrenzen. Lies hiermal nach
http://pywinauto.googlecode.com/hg/pywi ... ation.html
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 09:26
von BlackJack
@Campionissimo: Heisst das jetzt, dass der Fehler erst bei der letzten Zeile auftritt!? Kann es sein, dass `Connect` im letzten Schritt nicht eindeutig ist und Du vielleicht besser `ConnectButton` schreiben solltest?
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 10:48
von Campionissimo
@Xynon1
Vielen Dank. Das hat mir sehr geholfen mit den ["..."]
Tatsächlich ist Connect schon vorbelegt gewesen.
Coole Sache. Das Fernsteuern funzt. Bin jetzt glücklich, dass jemand das gewusst hat.
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 15:51
von Campionissimo
Ach man doch noch ein Problem;(
Code: Alles auswählen
app = application.Application()
app.start("FuTe.exe")
app.FuTe
app.FuTe.MenuSelect("FuTe->Connect")
app["Connect"].PortComboBox.Select("3")
app["Connect"].BaudrateComboBox.Select("115200")
app["Connect"].Logtofile.Click()
a = int(time.strftime("%d%m%Y%H%M%S"))
app["Connect"].logfilenameEdit.SetEditText("%s Daten" %a )
app["Connect"]["Select..."].Click()
app.Speichernunter.speicherninComboBox.Select("Daten")
#app.Speichernunter.DateitypComboBox.Select("TXT")
#app.Speichernunter.Speichern.Click()
#app["Connect"].Connect.Click()
Und zwar, ich möchte wenn ich im Dialogfeld 'Speichern unter' bin.
Bei 'Speichern in' im Desktop den Ordner 'Daten' auswählen.
aber irgendwie geht das nicht oder ich habs nicht gefunden. Ich kann nur statt der Daten ne 0 eingeben und das Verzeichnis wird gewechselt und das wars leider.
Fehlermeldung:
hoffentlich weiss wieder jemand was
Re: pywinauto combobox Funktion
Verfasst: Dienstag 17. Mai 2011, 16:44
von Xynon1
Spar dir diese kurzen Tracebacks entweder postest du den ganzen oder du lässt es. Aber ich will dir keinen Vorwurf machen, das die Fehlermeldungen in pywinauto "detaliert" sind ist mir auch schon aufgefallen.
Der Fehler besagt aber schlicht das es kein Verzeichnis "Daten" in der ComboBox gibt, den musst du schlißlich auf dem Desktop suchen. - Also in dem Fenster rechts daneben. Ich würde empfehlen bei "Dateiname: " einfach den kompletten Pfad mit Dateinamen anzugeben, statt sich durch das Menü virtuell zu klicken. Sollte schließlich auch funktionieren.
Re: pywinauto combobox Funktion
Verfasst: Mittwoch 18. Mai 2011, 07:34
von Campionissimo
Stimmt, das mit dem Pfad angeben passt. Dann brauch ich wirklich nicht so viel klicken

Aber es zu wissen wäre auch gut.
Und das mit der gekürzten Fehlermeldung.
Das war wirklich nur ein 4 zeiler.
Und die Zeilen die ich nicht gepostet sagen nur aus wo der Fehler war. Wollte keinen zu nahe treten.
Aber Danke für die zwei hilfreichen AntwortenFunzt jetz.
Wieder Danke an Xynon1
Re: pywinauto combobox Funktion
Verfasst: Mittwoch 18. Mai 2011, 09:19
von EyDu
Campionissimo hat geschrieben:Und die Zeilen die ich nicht gepostet sagen nur aus wo der Fehler war.
Das ist, neben der Fehlermeldung, die wichtigste Information

Zumal man bei deinen Beiträgen öfter mal rätseln musste, in welcher Zeile der Fehler auftritt. Du magst mit den vollständigen Tracebacks im Moment noch nicht viel anfangen können, für andere Benutzer sind sie aber eine große Hilfe.