如何使用Selenium和python从下拉列表中获取值列表

时间:2019-06-19 07:50:11

标签: python selenium selenium-webdriver select drop-down-menu

我试图从下拉列表中获取所有值的列表。

问题是单击下拉列表后将其激活。值列表仅在单击下拉菜单后显示

现在我有了这样的代码:

browser.find_element_by_xpath("/html/body/div[3]/div[8]/div[2]/div[1]/div[4]").click()

它使我能够激活下拉菜单,但我不完全了解如何从该下拉菜单中提取所有可能的值

HTML:

<option value="">-</option><option value="0401">Aleksandrowski</option><option value="2001">Augustowski</option> 

2 个答案:

答案 0 :(得分:2)

使用Select

根据最佳做法,您可以按以下方式添加WebDriverWaitexpected_conditions

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.ui import Select

locator = "/html/body/div[3]/div[8]/div[2]/div[1]/div[3]/div/div/select[1]"
botton_to_select = WebDriverWait(driver, 10).until((EC.element_to_be_clickable, (By.XPATH, locator)))
botton_to_select.click()
select = Select(browserdriver.find_element_by_xpath(locator))
for item in select.options:
    print(item.get_attribute('innerText'), item.get_attribute('value'))

希望这对您有帮助!

答案 1 :(得分:2)

我必须建议不要使用绝对XPath。尝试使用相对的Xpath。请找到以下代码以检索下拉值。

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver=webdriver.Chrome()
driver.get("https://polska.e-mapa.net/")
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[@class='searchLabel']/i"))).click()
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[text()='Działki']"))).click()
WebDriverWait(driver,20).until(EC.element_to_be_clickable((By.XPATH,"//div[contains(.,'Powiat:')]/select"))).click()
items=WebDriverWait(driver,20).until(EC.presence_of_all_elements_located((By.XPATH,"//div[contains(.,'Powiat:')]/select/option")))
for item in items:
    print(item.get_attribute('innerHTML'))

输出在控制台上打印

Aleksandrowski
Augustowski
Bartoszycki
Bełchatowski
Będziński
Bialski
Biała Podlaska
Białobrzeski
Białogardzki
Białostocki
Białystok
Bielski
Bielski
Bielsko-Biała
Bieruńsko-Lędziński
Bieszczadzki
Biłgorajski
Bocheński
Bolesławiecki
Braniewski
Brodnicki
Brzeski
Brzeski
Brzeziński
Brzozowski
Buski
Bydgoski
Bydgoszcz
Bytom
Bytowski
Chełm
Chełmiński
Chełmski
Chodzieski
Chojnicki
Chorzów
Choszczeński
Chrzanowski
Ciechanowski
Cieszyński
Czarnkowsko-Trzcianecki
Częstochowa
Częstochowski
Człuchowski
Dąbrowa Górnicza
Dąbrowski
Dębicki
Drawski
Działdowski
Dzierżoniowski
Elbląg
Elbląski
Ełcki
Garwoliński
Gdańsk
Gdański
Gdynia
Giżycki
Gliwice
Gliwicki
Głogowski
Głubczycki
Gnieźnieński
Goleniowski
Golubsko-Dobrzyński
Gołdapski
Gorlicki
Gorzowski
Gorzów Wielkopolski
Gostyniński
Gostyński
Górowski
Grajewski
Grodziski
Grodziski
Grójecki
Grudziądz
Grudziądzki
Gryficki
Gryfiński
Hajnowski
Hrubieszowski
Iławski
Inowrocławski
Janowski
Jarociński
Jarosławski
Jasielski
Jastrzębie-Zdrój
Jaworski
Jaworzno
Jelenia Góra
Jeleniogórski
Jędrzejowski
Kaliski
Kalisz
Kamiennogórski
Kamieński
Kartuski
Katowice
Kazimierski
Kędzierzyńsko-Kozielski
Kępiński
Kętrzyński
Kielce
Kielecki
Kluczborski
Kłobucki
Kłodzki
Kolbuszowski
Kolneński
Kolski
Kołobrzeski
Konecki
Konin
Koniński
Koszalin
Koszaliński
Kościański
Kościerski
Kozienicki
Krakowski
Kraków
Krapkowicki
Krasnostawski
Kraśnicki
Krosno
Krośnieński
Krośnieński
Krotoszyński
Kutnowski
Kwidzyński
Legionowski
Legnica
Legnicki
Leski
Leszczyński
Leszno
Leżajski
Lęborski
Lidzbarski
Limanowski
Lipnowski
Lipski
Lubaczowski
Lubański
Lubartowski
Lubelski
Lubiński
Lublin
Lubliniecki
Lwówecki
Łańcucki
Łaski
Łęczycki
Łęczyński
Łobeski
Łomża
Łomżyński
Łosicki
Łowicki
Łódzki Wschodni
Łódź
Łukowski
Makowski
Malborski
Miechowski
Mielecki
Międzychodzki
Międzyrzecki
Mikołowski
Milicki
Miński
Mławski
Mogileński
Moniecki
Mrągowski
Mysłowice
Myszkowski
Myślenicki
Myśliborski
Nakielski
Namysłowski
Nidzicki
Niżański
Nowodworski
Nowodworski
Nowomiejski
Nowosądecki
Nowosolski
Nowotarski
Nowotomyski
Nowy Sącz
Nyski
Obornicki
Olecki
Oleski
Oleśnicki
Olkuski
Olsztyn
Olsztyński
Oławski
Opatowski
Opoczyński
Opole
Opolski
Opolski
Ostrołęcki
Ostrołęka
Ostrowiecki
Ostrowski
Ostrowski
Ostródzki
Ostrzeszowski
Oświęcimski
Otwocki
Pabianicki
Pajęczański
Parczewski
Piaseczyński
Piekary Śląskie
Pilski
Pińczowski
Piotrkowski
Piotrków Trybunalski
Piski
Pleszewski
Płock
Płocki
Płoński
Poddębicki
Policki
Polkowicki
Poznań
Poznański
Proszowicki
Prudnicki
Pruszkowski
Przasnyski
Przemyski
Przemyśl
Przeworski
Przysuski
Pszczyński
Pucki
Puławski
Pułtuski
Pyrzycki
Raciborski
Radom
Radomski
Radomszczański
Radziejowski
Radzyński
Rawicki
Rawski
Ropczycko-Sędziszowski
Ruda Śląska
Rybnicki
Rybnik
Rycki
Rypiński
Rzeszowski
Rzeszów
Sandomierski
Sanocki
Sejneński
Sępoleński
Siedlce
Siedlecki
Siemianowice Śląskie
Siemiatycki
Sieradzki
Sierpecki
Skarżyski
Skierniewice
Skierniewicki
Sławieński
Słubicki
Słupecki
Słupsk
Słupski
Sochaczewski
Sokołowski
Sokólski
Sopot
Sosnowiec
Stalowowolski
Starachowicki
Stargardzki
Starogardzki
Staszowski
Strzelecki
Strzelecko-Drezdenecki
Strzeliński
Strzyżowski
Sulęciński
Suski
Suwalski
Suwałki
Szamotulski
Szczecin
Szczecinecki
Szczycieński
Sztumski
Szydłowiecki
Średzki
Średzki
Śremski
Świdnicki
Świdnicki
Świdwiński
Świebodziński
Świecki
Świętochłowice
Świnoujście
Tarnobrzeg
Tarnobrzeski
Tarnogórski
Tarnowski
Tarnów
Tatrzański
Tczewski
Tomaszowski
Tomaszowski
Toruń
Toruński
Trzebnicki
Tucholski
Turecki
Tychy
Wadowicki
Wałbrzych
Wałbrzyski
Wałecki
Warszawa
Warszawski Zachodni
Wąbrzeski
Wągrowiecki
Wejherowski
Węgorzewski
Węgrowski
Wielicki
Wieluński
Wieruszowski
Włocławek
Włocławski
Włodawski
Włoszczowski
Wodzisławski
Wolsztyński
Wołomiński
Wołowski
Wrocław
Wrocławski
Wrzesiński
Wschowski
Wysokomazowiecki
Wyszkowski
Zabrze
Zambrowski
Zamojski
Zamość
Zawierciański
Ząbkowicki
Zduńskowolski
Zgierski
Zgorzelecki
Zielona Góra
Zielonogórski
Złotoryjski
Złotowski
Zwoleński
Żagański
Żarski
Żniński
Żory
Żuromiński
Żyrardowski
Żywiecki