LoginSignup
0
0

More than 5 years have passed since last update.

Windows 10 Pro x64 + Python3 で selenium + chromedriver で複数選択可能なselect要素を操作してみる

Last updated at Posted at 2019-02-23

目的

複数選択可能なselect要素を操作してみる

サンプルコード

対象とするhtmlの抜粋


<select name="msel" size="5" multiple>
<option value="demo1">デモ1</option>
<option value="demo2">デモ2</option>
<option value="demo3">デモ3</option>
<option value="demo4">デモ4</option>
<option value="demo5">デモ5</option>
</select>

コード
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Chrome('C:\\Dev\\tool\\webdriver\\chromedriver.exe')  
driver.get('http://localhost:8080/')
try:

    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.NAME, 'msel'))
    )

    elm = driver.find_element_by_name('msel')
    # multiple かどうか
    print(Select(elm).is_multiple)
    # value で選ぶ
    element = Select(elm).select_by_value('demo1')
    # 表示テキストで選ぶ
    element = Select(elm).select_by_visible_text('デモ4')

    elm = driver.find_element_by_name('msel')

    # 最初に選択されている項目のみ
    em = Select(elm).first_selected_option
    print(em.get_attribute('value') + ':' + em.get_attribute('text')) 

    # 選択されている項目を全て
    em = Select(elm).all_selected_options
    for item in em:
        print(item.get_attribute('value') + ':' + item.get_attribute('text')) 

    time.sleep(2) # 表示確認用のwait
finally:
    driver.quit()

参考にしたサイトはこちら

7. WebDriver API
セレクトボックスを作る

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0