Jestem bardzo nowy w web scrapingu, więc wciąż mam wiele problemów. Obecnie próbuję zbierać web scrape z https://www.enterprisetrucks.com/truckrental/en_US .html ustawiając czas odbioru, uruchamiając ten kod:

pickupTime = d.find_element_by_id('fldPickuptime_msdd')
pickupTime.click();
select = Select(d.find_element_by_id('fldPickuptime'))
select.select_by_value('20:00')

Ale pojawia się błąd informujący, że element nie jest obecnie widoczny i nie można nim manipulować.

0
Eric Oh 19 grudzień 2019, 20:31

1 odpowiedź

Lista rozwijana, która jest obecna, nie jest typu Select, więc nie możesz tutaj użyć metody Select. Musisz kliknąć czas bezpośrednio za pomocą xpath tego elementu.
Możesz użyć xpath:

pickupTime = d.find_element_by_id("fldPickuptime_msdd")
pickupTime.click();
selectTime = d.find_element_by_xpath("//*[@id='fldPickuptime_msdd']//span[text()='8:00 PM']")
selectTime.click();

Kod dla kliknięcia JavaScriptExecutor:

 element = driver.find_element_by_xpath("Enter the xpath here")
 driver.execute_script("arguments[0].click();", element)
1
Sameer Arora 20 grudzień 2019, 21:35
Próbowałem zmienić czas powrotu, ale kiedy używam identyfikatora „fldReturntime_msdd”, otrzymuję komunikat o błędzie ElementNotInteractableException: Message: element nie wchodzi w interakcje, dlaczego tak się dzieje?
 – 
Eric Oh
20 grudzień 2019, 11:35
Jak zmienić datę?
 – 
Eric Oh
20 grudzień 2019, 13:03
1. „ElementNotInteractableException” pojawia się, gdy element, który próbujesz kliknąć, nie jest aktualnie wyświetlany. Możesz więc kliknąć element za pomocą javascriptexecutor kliknij 2. Możesz zmienić datę, wysyłając wymagany czas w xpath, o którym mowa w odpowiedzi.
 – 
Sameer Arora
20 grudzień 2019, 21:32
Dodaliśmy metodę klikania javascript w odpowiedzi. Możesz tego użyć.
 – 
Sameer Arora
20 grudzień 2019, 21:36
Ale dlaczego korzystanie z xpath działa w czasie odbioru, ale nie w czasie powrotu?
 – 
Eric Oh
20 grudzień 2019, 21:49