Saya perlu memilih elemen dari menu drop-down .
Sebagai contoh:
<select id="fruits01" class="select" name="fruits">
<option value="0">Choose your fruits:</option>
<option value="1">Banana</option>
<option value="2">Mango</option>
</select>
1) Pertama saya harus mengkliknya. Saya melakukan ini:
inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click()
2) Setelah itu saya harus memilih elemen yang baik, katakan saja Mango
.
Saya mencoba melakukannya dengan inputElementFruits.send_keys(...)
tetapi tidak berhasil.
python
selenium
selenium-webdriver
web-scraping
webdriver
Adam Bovien
sumber
sumber
Select
kelas membuat masalah lebih mudah untuk dipecahkan, lihat jawaban yang saya posting.find_by_id
? Bagaimana cara saya memberikan nilai? Juga, bagaimana cara menemukanxpath
elemen?Selenium menyediakan
Select
kelas yang nyaman untuk bekerja denganselect -> option
konstruksi:Lihat juga:
sumber
pertama Anda perlu mengimpor kelas Select dan kemudian Anda perlu membuat instance dari kelas Select. Setelah membuat instance dari kelas Select, Anda dapat melakukan metode pilih pada instance itu untuk memilih opsi dari daftar dropdown. Ini kodenya
sumber
Saya harap kode ini akan membantu Anda.
elemen tarik-turun dengan id
elemen dropdown dengan xpath
elemen tarik-turun dengan pemilih css
Memilih 'Pisang' dari dropdown
ddelement.select_by_index(1)
ddelement.select_by_value('1')
ddelement.select_by_visible_text('Banana')
sumber
Saya mencoba banyak hal, tetapi drop down saya ada di dalam meja dan saya tidak dapat melakukan operasi pilih yang sederhana. Hanya solusi di bawah ini yang berfungsi. Di sini saya menyoroti elem drop-down dan menekan panah ke bawah sampai mendapatkan nilai yang diinginkan -
sumber
Anda tidak perlu mengklik apa pun. Gunakan find by xpath atau apa pun yang Anda pilih dan kemudian gunakan tombol kirim
Sebagai contoh Anda: HTML:
Python:
Itu dia.
sumber
Anda dapat menggunakan kombinasi pemilih css dengan baik
Ubah 1 pada atribut = value css selector ke nilai yang sesuai dengan buah yang diinginkan.
sumber
Ini akan bekerja dengan baik
sumber
Ini bekerja dengan nilai opsi:
sumber
Dengan cara ini Anda dapat memilih semua opsi dalam dropdown apa pun.
sumber
for items in range(1,input1): inputs.select_by_index(items)
, tetapi dimulai dari indeks kedua. Bagaimana saya bisa mendapatkan nilai pertama?Cara terbaik untuk menggunakan
selenium.webdriver.support.ui.Select
kelas untuk bekerja dengan pilihan dropdown tetapi beberapa waktu itu tidak berfungsi seperti yang diharapkan karena masalah desain atau masalah lain dari HTML.Dalam situasi seperti ini Anda juga dapat memilih solusi alternatif menggunakan
execute_script()
seperti di bawah ini: -sumber
Sesuai HTML yang disediakan:
Untuk memilih
<option>
elemen dari ahtml-pilihmenu Anda harus menggunakan Pilih Kelas . Apalagi, karena Anda harus berinteraksi denganmenu drop downAnda harus menginduksi WebDriverWait untukelement_to_be_clickable()
.Untuk memilih
<option>
teks dengan sebagai Mangga dari menudropdownAnda dapat menggunakan Anda dapat menggunakan salah satu dari Strategi Pencari Lokasi berikut :Menggunakan atribut dan metode ID
select_by_visible_text()
:Menggunakan CSS-SELECTOR dan
select_by_value()
metode:Menggunakan XPATH dan
select_by_index()
metode:sumber
ListBoxMultiple kelas publik {
}
sumber