Aktywne Wpisy
SaintWykopek +1702
Ostatnia cyfra po naciśnięciu plusa to twoja dziewczyna
1. skandynawka
2. włoszka
3. latynoska
4. czekoladka
5. hiszpanka
6. polka witaminka
7. azjatka
8. francuzka
9. nigdy nie będziesz miał dziewczyny
0. filipinka
1. skandynawka
2. włoszka
3. latynoska
4. czekoladka
5. hiszpanka
6. polka witaminka
7. azjatka
8. francuzka
9. nigdy nie będziesz miał dziewczyny
0. filipinka
SaintWykopek +542
Kto miał taką latarkę plusuje
Jan Nowak
Marek Nowak
Anna Nowak
Z tej listy chciałbym wybrać Marka Nowaka. Po zbadaniu elementu otrzymuję coś takiego:
Marek Nowak
a po skopiowaniu xpatha:
/html/body/div[1]/div/div[4]/div/div/div[2]/form/fieldset[1]/div[1]/div/span/span[2]/span[2]
No i powiedzmy że używam findelementbyxpath i podaję tego xpatha, ale wybiera mi pierwszy element z listy czyli Jana Nowaka. Nawet zmieniając indeks ostatniego span z 2 na inną wartość, cały czas wybierana zostaje pierwsza opcja. Szukając w googlach znalazłem rozwiązania typu:
findelementbyxpath("//*[contains(.,'Marek Nowak')]")
findelementby_xpath("//*[contains(text()[2],'Marek Nowak')]")
ale nic z tego nie działa. Ma ktoś pomysł jak to rozwiązać?
#programowanie #naukaprogramowania #python
(/html/body/div[1]/div/div[4]/div/div/div[2]/form/fieldset[1]/div[1]/div/span/span[2]/span)[2]
i musisz się upewnić, że wykonujesz tego xpatha po załadowaniu tej listy. Zakładam, że tak jest :)
//span[text()="{Dane Kontrahenta}"]
Te rozwiazania z googla to aby nie mialy "*" po "//"?
Komentarz usunięty przez autora
Spróbuj tak:
from selenium.webdriver.support.ui import Select
selec1t = Select(driver.findelementbyid('ID całej rozwijanej listy'))
selec1t.selectbyvisibletext('Marek Nowak')
W dupe ucina podkreślniki
Dodatkowo zauważyłem że używając np xpatha wybiera mi pierwszy element z listy ponieważ ten element jest podświetlony. Gdy myszką ręcznie przejadę na inny element to wtedy zostanie wybrany ten który jest podświetlony, więc może trzeba to jakoś po prostu obejść jakimś brutal forcem, żeby np na stronie lokalizowało szukany tekst i kliknęło
from selenium import webdriver
from selenium.webdriver.support import expectedconditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
driver = webdriver.Chrome("chromedriver.exe")
driver.get("https://www.google.pl")
inputsearch = driver.findelementbyxpath("//input[@name='q']")
inputsearch.sendkeys("test")
autocompleteitem = WebDriverWait(driver, 20).until(EC.elementtobeclickable((By.XPATH, "//b[contains(text(),'osteron')]"))) // czeka na element z ciągiem 'osteron' aż nie będzie klikalny
autocompleteitem.click()
u ciebie przykładowym szukanym elementem będzie