Oto opis tego, co próbuję zrobić przy użyciu Selenium Webdriver w Pythonie: Mam swoją stronę internetową, która przyjmuje jako dane wejściowe różne parametry dla konkretnego produktu i podaje cenę produktu o tych parametrach. Utrzymuję wszystkie parametry oprócz jednego i zmieniając jeden określony parametr w pętli for, aby zobaczyć, jak zmienia się cena w zależności od tego konkretnego parametru. Raz zmienić parametr i wysłać formularz, a następnie używam niejawnie czekać następująco:Poczekaj, aż strona zostanie odświeżona
submit_btn.click()
driver.implicitly_wait(10)
driver.find_element_by_name("Buy_Product")
soup=BeautifulSoup(driver.page_source)
Po wprowadzeniu pierwszego zestawu parametrów strona jest przejrzysta i nie zawierają buttton z nazwą „Buy_Product” tak ja Używam linii aby upewnić się, że kod czeka na pojawienie się tego przycisku, co oznacza, że strona zawiera teraz cenę, którą chcę wyodrębnić. Problem polega na tym, że po raz drugi w pętli, gdy zmieniam parametr i próbuję uzyskać nową cenę, przycisk "Buy_Product" już istnieje, więc niejawnie oczekiwanie już nie działa, a czasami zajmie poprzednie page_source, zanim cena czas do aktualizacji. Trudnym elementem jest to, że czasami nawet dla różnych parametrów cena jest taka sama, więc nie mogę po prostu sprawdzić, czy widoczny tekst ceny się zmienił. Jakieś pomysły, jak można to rozwiązać bez użycia time.sleep?
Ma 'wait_for_page_load()' zostały usunięte ...? – Izkata
Czy ponownie ładujesz całą stronę lub aktualizujesz cenę za pomocą javascript? – Edu
możesz przesłać formularz, który renderuje nową stronę Edu – luckyfool