今回もPythonでseleniumを利用してセレクトタグのオプションを選択する方法についての説明になります。
これまでにセレクトタグで各オプションのインデックス番号からオプションの選択をする方法は記載していますが、今回は表示テキストにより選択する方法の説明です。
セレクトタグで表示テキストからオプションの選択を行う場合には、セレクト要素に対してselect_by_visible_text()を使用します(以下参照)。
select.select_by_visible_text()
以下にChromeの場合の例を載せておきます。
SeeleniumではバージョンによってWebドラーバーの設定方法が異なりますが、例として載せている内容はSelenium ver.4.6以降の場合の例となります。
(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)
#テキストを設定
text = "abcdef"
#セレクトタグのオプションをテキストを指定して選択
select.select_by_visible_text(text)
# タブを閉じる driver.close() driver.quit()
同様にEdgeの場合は以下になります。
5行目のWebドライバーの設定の箇所が違うだけです。
(Selenium ver.4.6以降の場合)
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)
#テキストを設定
text = "abcdef"
#セレクトタグのオプションをテキストを指定して選択
select.select_by_visible_text(text)
# タブを閉じる driver.close() driver.quit()
上記例では、
3行目までで必要なライブラリのインポートを行っています。
5行目はChrome用またはEdge用のWebドライバー設定となります。
このdriverを使用して、6行目でdriver.getの後にオープンしたいURLを指定します(上記例では********.***指定)。
その後、8行目で画面内でnameが「abcdef」というセレクトタグの要素を探索して「element」に設定しています。
10行目でセレクトタグの要素を指定してSelectクラスのインスタンスを作成しています。
12行目でテキストを指定し、14行目でSelectクラスのインスタンスに対してselect_by_visible_text(text)でテキストを引数として渡してセレクトタグのオプションを選択しています。
尚、Selenium ver.4.6以前の場合については以下の記事に載せています。
Webドライバーの設定が違うだけですが。
以上がセレクトタグのオプションを表示テキストから選択する方法の説明と簡単な例になります。