ich verwende momentan folgenden Code, um mit Selenium durch eine Shop-Kategorie zu navigieren:
Code: Alles auswählen
logging.info("8. Kategorie wird geladen")
start_time = time.monotonic()
expected_condition = EC.visibility_of_element_located((By.XPATH, "//h2[contains(text(),'Kategorie')]"))
wait = WebDriverWait(self.driver, 10000)
wait.until(expected_condition)
end_time = time.monotonic()
self.testcase_navigation = self.testcase_navigation + "Kategorie /"
logging.info(self.testcase_project + ";" + datetime.datetime.now().strftime("%w.%m.%Y;%H:%M") + ";" + self.testcase_name + ";" + self.testcase_browser + ";" + self.testcase_navigation + ";Top Seller;" + f"{end_time - start_time:.1f}")
time.sleep(10)
self.driver.find_element(By.XPATH, "//h3[normalize-space()='Unterkategorie']").click()
Sprich, mein Warten auf die expected-condition greift zu früh, weil der Link dann noch nicht vollständig aufgebaut ist und nicht geklickt werden kann.
Kennt Ihr Tricks, wie ich in so einem Fall umgehen kann?
Kann man z.B. irgendwie herausfinden, bis wann die Seite vollständig geladen wurde?
Die Inhalte werden aber an der Stelle dynamisch nachgeladen.
Nachtrag: Mir ist aufgefallen, dass die Kategorien keine Klicks haben, sondern da wohl ein Javascript sein Unwesen treibt.
Wie kann ich denn abfragen, ob alle JavaSkripte geladen sind?