Pythonでseleniumを利用してセレクトタグのオプションを選択する方法についての説明になります。
セレクトタグでは各オプションの表示テキストやインデックス番号からオプションの選択ができますが、今回はインデックス番号により選択する方法の説明です。
セレクトタグでインデックス番号からオプションの選択を行う場合には、セレクト要素に対してselect_by_index()を使用します(以下参照)。
select.select_by_index()
以下にChromeの場合の例を載せておきます。
以下は、selenium ver.4.6以降の場合の例になります。
それ以前とはWebドライバーの指定が異なります。
(selenium ver.4.6以降の場合)
from selenium import webdriver from selenium.webdriver.support.select import Select
selenium.webdriver.common.by import By # ドライバー指定でChromeブラウザを開く
driver = webdriver.Chrome()
driver.get('https://**********.***/')
#セレクトタグの名前が「abcdef」とした場合の指定例 element = driver.find_element(By.NAME, "abcdef")
#セレクトタグの要素を指定してSelectクラスのインスタンスを作成
select = Select(element)
#インデックス番号を指定
indexNum = 1
#セレクトタグのオプションをインデックス番号から選択
select.select_by_index(indexNum)
# タブを閉じる driver.close() driver.quit()
同様にEdgeの場合は以下になります。
5行目のドライバーの設定の箇所が違うだけです。
from selenium import webdriver from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By # ドライバー指定でEdgeブラウザを開く
driver = webdriver.Edge()
driver.get('https://**********.***/')
#セレクトタグの名前が「abcdef」とした場合の指定例
element = driver.find_element(By.NAME, "abcdef")
#セレクトタグの要素を指定してSelectクラスのインスタンスを作成
select = Select(element)
#インデックス番号を指定
indexNum = 1
#セレクトタグのオプションをインデックス番号から選択
select.select_by_index(indexNum)
# タブを閉じる driver.close() driver.quit()
上記例では、
3行目までで必要なライブラリのインポートを行っています。
5行目はChrome用またはEdge用のドライバー設定となります。
このdriverを使用して、6行目でdriver.getの後にオープンしたいURLを指定します(上記例では********.***指定)。
その後、8行目で画面内で検索キーワード入力窓の要素を探索して「element」に設定しています。
10行目でセレクトタグの要素を指定してSelectクラスのインスタンスを作成しています。
12行目でインデックス番号を指定し、14行目でSelectクラスのインスタンスに対してselect_by_index(indexNum)でインデックス番号を引数として渡してセレクトタグのオプションを選択しています。
尚、selenium ver.4.6以前の場合については以下にて記載しています。
Webドライバーの指定が異なるだけですが。
以上がセレクトタグのオプションをインデックス番号から選択する方法の簡単な例になります。