Zum Thema Warten mit Selenium gibt es hier einige Infos:
https://www.selenium.dev/documentation/webdriver/waits/
Die Suche ergab 6740 Treffer
- Freitag 15. Dezember 2023, 18:19
- Forum: Allgemeine Fragen
- Thema: Python mit Selenium, custom Elemente werden nicht gefunden?
- Antworten: 3
- Zugriffe: 481
- Donnerstag 14. Dezember 2023, 17:45
- Forum: Showcase
- Thema: Columnizer (jetzt: shcol)
- Antworten: 53
- Zugriffe: 31857
Re: Columnizer (jetzt: shcol)
Nach einer weiteren __kleineren__ Verzögerung habe ich das Skript mal zu Ende gepfuscht und an die Möglichkeiten von Python 3.12 angepasst. Es hört nun auf den Namen "simplecol" und kann mittlerweile mit Mappings und Path-Objekten umgehen. Der Spaltentrenner kann ein beliebiger String sein...
- Mittwoch 13. Dezember 2023, 04:55
- Forum: Allgemeine Fragen
- Thema: Attribute Error trotz "Erbung" der Klasse
- Antworten: 4
- Zugriffe: 510
Re: Attribute Error trotz "Erbung" der Klasse
Zwischenstand (ungetestet): class Point: # ... def coincides(self, other): return self.x == other.x and self.x == other.x Hier prüfst du doppelt auf die x-Werte, aber "vergisst" die y-Werte. Das müsste insofern sicherlich ``self.x == other.x and self.y == other.y`` heißen. Und das Verschi...
- Mittwoch 6. Dezember 2023, 21:55
- Forum: Allgemeine Fragen
- Thema: Type hints oder duck typing?
- Antworten: 11
- Zugriffe: 1031
Re: Type hints oder duck typing?
Beim Nutzen von Typ-Annotationen greife ich gerne auf die Typ-Definitionen aus dem ``collections.abc`` Modul zu. Statt ``list`` kann ich dann ``Sequence`` als Typen eintragen oder anstatt ``dict`` nehme ich ``Mapping``. Damit hat man gewissermaßen eine Mischung aus festen Typ-Angaben und dennoch ein...
- Dienstag 5. Dezember 2023, 00:28
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Ich finde es immer kurios, wenn man eine gute Lösung gefunden hat und die vielleicht noch ein paar Mal durchdenkt, dann fragt man sich, warum man nicht früher drauf gekommen ist. Part 1 war keine große Sache und der "Trick" mit der Zweierpotenz sollte so ziemlich jedem einleuchten, der mal...
- Montag 4. Dezember 2023, 23:42
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Hab nun auch die flotte Lösung hingekriegt. Man sollte bei Part 2 halt nicht wirklich Millionen von Elementen in die Liste stecken, sondern den Vorgang durch Berechnung quasi simulieren. Der naive Weg war dennoch erstmal gut, um die korrekte Lösung zu finden und sich mit der Herangehensweise vertrau...
- Montag 4. Dezember 2023, 22:17
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Tag 4 nun auch gelöst, aber mit extrem übler Laufzeit bei Part 2. Das muss ich mir nochmal genauer angucken.
- Montag 4. Dezember 2023, 20:13
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Meine Lösung für Tag 3 sieht so aus: import re from collections import namedtuple NUMBER_RE = re.compile(r"\d+") SYMBOL_RE = re.compile(r"[^\d.\n]") Position = namedtuple("Position", "x y") class NumberArea( namedtuple("NumberArea", "value start...
- Sonntag 3. Dezember 2023, 11:07
- Forum: Allgemeine Fragen
- Thema: interne Befehlsausführung
- Antworten: 42
- Zugriffe: 2835
Re: interne Befehlsausführung
@Domperle Idiomatisches Python ist etwas komplett anderes als die Programmierung von Fräsmaschinen. Die von dir angeführten Beispiele zeigen, dass du bisher nicht wirklich Berührungspunkte zu objektorientierter Programmierung hattest. Du bist offensichtlich den prozeduralen Ansatz gewöhnt und denkst...
- Sonntag 3. Dezember 2023, 00:46
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
@ThomasL Krass, wie kurz deine Lösungen immer sind. :o Ich habe das so gemacht: from math import prod def parse_game(string): game_info = {} for setting in string.split(": ")[1].split("; "): for times, color in map(str.split, setting.split(", ")): game_info[color] = max...
- Samstag 2. Dezember 2023, 12:53
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
@kbr: Auch wenn das bei heutigen Rechnern und angesichts der wenigen Daten keinen spürbaren Unterschied macht, aber deine Lösung ist ziemlich suboptimal. Allein schon das ständige Umkopieren des nahezu kompletten Strings, nur um ein Zeichen vorzurücken, stellt auch bei Quick & Dirty Code in mein...
- Samstag 2. Dezember 2023, 12:14
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Iiih, in Aufgabenteil zwei von Tag 1 2023 ist eine kleine Falle drin, in die ich getappt bin, die in den Testdaten nicht vorkam, in meinen persönlichen Eingabedaten aber schon. In den Testdaten ist aber trotzdem ein Hinweis. Geht mir gerade ähnlich. Ich weiß nicht, was passieren soll, wenn in einer...
- Samstag 2. Dezember 2023, 12:04
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Hab bei Tag 2 nun auch beide Parts durch. Ich fand den heutigen Tag sogar leichter als den Tag 1, insbesondere den zweiten Teil. Die in Python naheliegende Datenstruktur pro Spiel machte die Lösung recht simpel. Nur beim Parsen musste ich erst ein bisschen überlegen. Weniger über die benötige Method...
- Samstag 2. Dezember 2023, 07:44
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Habe mittlerweile auch beide Parts gelöst. Den Lookahead-Trick nutze ich dabei mit re.finditer(). Somit spare ich mir die quadratische Laufzeit bei den Textersetzungen. import re INPUT_PATH = "input1.txt" DIGIT_WORDS = ( "one two three four five six seven eight nine" ).split() WO...
- Samstag 2. Dezember 2023, 06:26
- Forum: Links und Tutorials
- Thema: Advent of Code
- Antworten: 415
- Zugriffe: 97060
Re: Advent of Code
Iiih, in Aufgabenteil zwei von Tag 1 2023 ist eine kleine Falle drin, in die ich getappt bin, die in den Testdaten nicht vorkam, in meinen persönlichen Eingabedaten aber schon. In den Testdaten ist aber trotzdem ein Hinweis. Geht mir gerade ähnlich. Ich weiß nicht, was passieren soll, wenn in einer...
- Montag 27. November 2023, 05:42
- Forum: Installation/Konfigurieren
- Thema: ModuleNotFoundError: No module named 'pdfminer.high_level'; 'pdfminer' is not a package
- Antworten: 2
- Zugriffe: 1006
Re: ModuleNotFoundError: No module named 'pdfminer.high_level'; 'pdfminer' is not a package
Kann es sein, dass du dein eigenes Modul auch pdfminer genannt hast?
- Montag 27. November 2023, 05:29
- Forum: Allgemeine Fragen
- Thema: Nacheinander in Json-Dict speichern
- Antworten: 15
- Zugriffe: 986
Re: Nacheinander in Json-Dict speichern
@__deets__
Wie kommst du jetzt auf Android?
Wie kommst du jetzt auf Android?
- Sonntag 26. November 2023, 20:21
- Forum: Allgemeine Fragen
- Thema: Nacheinander in Json-Dict speichern
- Antworten: 15
- Zugriffe: 986
Re: Nacheinander in Json-Dict speichern
Ich würde das wahrscheinlich einfach mit dem Linux-Tool jq via subprocess.run() lösen. Man muss nicht "krampfhaft" immer alles in Python schreiben.
Oder vielleicht besser: https://pypi.org/project/jq/
(habe ich mir aber nur oberflächlich angeguckt)
Oder vielleicht besser: https://pypi.org/project/jq/
(habe ich mir aber nur oberflächlich angeguckt)
- Sonntag 26. November 2023, 18:28
- Forum: Allgemeine Fragen
- Thema: Nacheinander in Json-Dict speichern
- Antworten: 15
- Zugriffe: 986
Re: Nacheinander in Json-Dict speichern
Ich glaube, der Knackpunkt ist hier das fortlaufende Schreiben und Auslesen der Daten, richtig? Es gibt verschiedene von JSON abgeleitete Formate, die Streaming unterstützen (z. B. JSON Lines). Vielleicht ist das hier der bessere Ansatz. Hier der passende Wikipedia-Artikel: https://de.wikipedia.org/...
- Dienstag 21. November 2023, 20:10
- Forum: Allgemeine Fragen
- Thema: Wann "match/case" in Python?
- Antworten: 14
- Zugriffe: 1055
Re: Wann "match/case" in Python?
Also den Walrus-Operator finde ich in manchen Situationen ganz gut. Und zwar dann, wenn man einen Rückgabewert testet und im positiven Fall diesen Wert direkt weiterverwendet. Ein typisches Beispiel:
Code: Alles auswählen
if (m := re.match(...)):
do_something(m.groups())