Jak kliknąć w element dzięki XPATH, python/selenium

Jak kliknąć w element dzięki XPATH, python/selenium
JD
  • Rejestracja:ponad 9 lat
  • Ostatnio:12 dni
  • Postów:48
0

Dzień dobry, mam problem ze zrozumieniem jak znaleźć element po Xpath..
Tworzę pewien automacik, który uzupełnia dane na stronie i je zapisuje nim przejdzie do kolejnej zakladki.
Pierwszą fajnie powypełniał danymi, poklikał i ok, ale w następnej zakładce jest tylko jedna informacja do wprowadzenia, którą wprowadza jeszcze bez problemu, ale nie mogę później trafić w przycisk zapisz - ponieważ są 3 takie same przyciski na stronie.
Nie ma tam ramek a nazwy i klasy są takie same. Wydaje mi się, że powinienem go namierzyć poprzez xpath - tylko jakoś nie ogarniam jak to działa. Mógłby mi ktoś 'namalować' jak debilowi kwestię tego jednego przycisku?

Yukiteru Gromadzki
  • Rejestracja:ponad 6 lat
  • Ostatnio:ponad rok
  • Postów:192
0

XPath możesz pobrać przez devtools.
Klikasz prawym na element który cię interesuje i Copy > Cope XPath.

JD
Tak wiem, ale co z nim zrobić..
artur_waw
  • Rejestracja:ponad 18 lat
  • Ostatnio:prawie 2 lata
  • Postów:155
0

@JakubD:

Jak znajdziesz xpath danego elementu to Selenium pozwala odszukać taki element na stronie i wykonać na nim akcję:

Kopiuj
from selenium import webdriver

driver = webdriver.Firefox()
driver.get("http://example.com")

button = driver.find_element_by_xpath('//div[@class="zapisz"]/button')
button.click()
JD
  • Rejestracja:ponad 9 lat
  • Ostatnio:12 dni
  • Postów:48
0

Tylko Xpath mam typu:
/html/body/div[1]/div[2]/div[6]/div/div/form/div[3]/div[1]/div[10]/button[2]
..

JD
elenium.common.exceptions.ElementClickInterceptedException: Message: Element <button class="btn btn-default pull-right" name="submitAddproductAndStay" type="submit"> is not clickable at point (1141,833) because another element <div id="footer" class="bootstrap"> obscures it
artur_waw
  • Rejestracja:ponad 18 lat
  • Ostatnio:prawie 2 lata
  • Postów:155
0

@JakubD:
XPath z generatora często wygląda tak jak Twój, możesz go użyć :) Co do błędu z komentarza to Seleniu otwiera czystą przeglądarkę - więc może jest tam popup z cookies czy inna zgodą która zasłania element w którch chcesz kliknąć. Możesz albo scrollować ekran albo zobaczyć co tam się wyświetla i to zamknąć żeby odsłonić button.

JD
nic tam nie widzę, nie działa
artur_waw
@JakubD Najłatwiej by było jakbyś podał link do strony :)
JD
nie da rady - muszę być wlogowany
JD
  • Rejestracja:ponad 9 lat
  • Ostatnio:12 dni
  • Postów:48
0

No jak to klinkąć..:(?

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.