Okej, chłopaki od jakiegoś czasu nie zajmują się kodowaniem i próbuję wrócić do gry, ponieważ to uwielbiam

Obecnie piszę skrypt w języku Python i mam problem ze znalezieniem prawidłowego sposobu kliknięcia przycisku, którego próbowałem kilka razy i w tym właśnie utknąłem.

Dodaj do torby

Podczas kopiowania selektora css:

#dwfrm_product_addtocart_d0rmouqnbpev > div > div.pdp-button-block > button.pdp-add-to-bag.add-to-cart.pid-19CE-ac0eff0691331d3dc991483b06

Podczas kopiowania xpath:

//*[@id="dwfrm_product_addtocart_d0byuazkjuyr"]/div/div[5]/button[1]

Kod, który mam w skrypcie:

python_button = driver.find_element_by_xpath("//*[@id='dwfrm_product_addtocart_d0byuazkjuyr']/div/div[5]/button[1]")[0] python_button.click() Próbowałem różnych rzeczy i obecnie jest mi ciężko

0
subliminal 17 listopad 2019, 15:56

1 odpowiedź

Kilka punktów w linii użytej: find_element_by_xpath("//*[@id='dwfrm_product_addtocart_d0byuazkjuyr']/div/div[5]/button[1]")[0]

  1. find_element_by_xpath zwraca element WebElement, a nie listę elementów WebElement. Możesz więc usunąć [0], ponieważ wybiera pierwszy element pasujący do xpath.

  2. Możesz też użyć find_elements_by_xpath, jeśli chcesz dopasować listę i wybrać jeden element za pomocą indeksu.

  3. Ostatnia część id wygląda na wygenerowaną losowo, więc lepiej używać zawiera zamiast dążyć do dokładnego dopasowania.

Możesz sprawdzić w konsoli, czy użyty lokalizator jest poprawny (używając $$ dla css i $x dla xpath). Jeśli jest poprawny, sprawdź, czy jakikolwiek inny element nakłada się na element, który próbujesz kliknąć, i spróbuj kliknąć ten.

Mam nadzieję że to pomoże! Powodzenia

0
Awais 18 listopad 2019, 12:01