warte bis die Seite aktualisiert wurde

8

Hier ist eine Beschreibung dessen, was ich mit Selenium Webdriver in Python zu tun versuche: Ich habe meine Website, die verschiedene Parameter für ein bestimmtes Produkt als Eingabe verwendet und einen Preis für das Produkt mit diesen Parametern ausgibt. Ich halte alle Parameter bis auf einen konstant und variiere einen bestimmten Parameter in einer for-Schleife, um zu sehen, wie der Preis entsprechend diesem einen spezifischen Parameter variiert. Sobald ich den Parameter ändere, sende ich das Formular und dann implizit benutze ich wie folgt:

%Vor%

Beim Eingeben der ersten Parametergruppe ist die Seite leer und enthält nicht den Namen "Buy_Product", also verwende ich die Zeile

%Vor%

um sicherzustellen, dass der Code darauf wartet, dass dieser Button erscheint, was bedeutet, dass die Seite jetzt den Preis enthält, den ich extrahieren möchte. Das Problem ist, dass das zweite Mal durch die Schleife, wenn ich den Parameter variieren und versuchen, den neuen Preis zu erhalten, der Button "Buy_Product" ist bereits da so implizit warten nicht mehr funktioniert und manchmal dauert es die vorherige page_source, bevor der Preis Zeit hat aktualisiert werden. Der schwierige Teil ist, dass manchmal sogar für verschiedene Parameter der Preis derselbe ist, so dass ich nicht einfach überprüfen kann, ob sich der sichtbare Text des Preises geändert hat. Irgendwelche Ideen, wie dies gelöst werden kann, ohne time.sleep zu verwenden?

    
luckyfool 05.12.2012, 14:00
quelle

2 Antworten

1

Die Situation ist etwas schwierig hier ... ich bin mir nicht sicher ... wenn das hilft ... aber versuchen Sie es ...

Mein Vorschlag ist eine JavaScript-Injektion, bei der ich überprüfe, ob die Seite vollständig geladen ist und bis dahin wartet. (c # Codeausschnitt)

%Vor%

Ich hoffe, das hilft .... Alles Gute: -)

    
Anuragh27crony 06.12.2012 06:35
quelle
1

Wenn die Lösung von Anuragh27crony für Sie nicht funktioniert, sollten Sie auch darüber nachdenken, auf die Deaktivierung von jquery zu warten. Der Code sieht größtenteils gleich aus, aber übergeben Sie stattdessen diesen Javascript-Aufruf:

%Vor%     
Michiel Bugher 31.01.2013 00:07
quelle