Hier ist eine Beschreibung von dem, was ich versuche mit Selenium Webdriver in Python zu tun: Ich habe meine Website, die als Eingabe verschiedene Parameter für ein bestimmtes Produkt und gibt einen Preis für das Produkt mit diesen Parametern. 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 zu ändern einreichen i die Form und verwenden Sie dann warten i implizit wie folgt:warten bis Seite aktualisiert
submit_btn.click()
driver.implicitly_wait(10)
driver.find_element_by_name("Buy_Product")
soup=BeautifulSoup(driver.page_source)
wenn der erste Satz von Parametern Eingabe der Seite klar ist und es enthält nicht die buttton mit dem Namen „Buy_Product“ so i ist mit der Linie
driver.find_element_by_name("Buy_Product")
zu dem Code stellen Sie sicher, für diese Schaltfläche, welche die Seite nun bedeutet, zu erscheinen wartet den Preis enthält i extrahieren möge. Das Problem ist, dass das zweite Mal durch die Schleife, wenn ich den Parameter variieren und versuchen, den neuen Preis zu bekommen die Schaltfläche "Buy_Product" ist bereits da so implizit warten nicht mehr funktioniert und manchmal wird die vorherige page_source, bevor der Preis hat Zeit, um aktualisiert zu werden. Der schwierige Teil ist, dass manchmal sogar für verschiedene Parameter der Preis der gleiche ist, so kann ich nicht nur überprüfen, ob der sichtbare Text des Preises geändert hat. Irgendwelche Ideen, wie dies gelöst werden kann, ohne time.sleep zu verwenden?
Hat 'wait_for_page_load()' entfernt worden ist ...? – Izkata
Laden Sie die gesamte Seite neu oder aktualisieren Sie den Preis mit Javascript? – Edu
Sie reichen ein Formular, das eine neue Seite rendert Edu – luckyfool