Django Girls and Boys 備忘録

Python、Selenium、Django、java、iPhoneアプリ、Excelマクロなどで気付いたこと、覚えておきたいことなどを載せていきます。

【Python Selenium】セレクトタグのオプションをテキストを指定して選択する方法

今回もPythonでseleniumを利用してセレクトタグのオプションを選択する方法についての説明になります。

 

前回はセレクトタグで各オプションのインデックス番号からオプションの選択をする方法でしたがが、今回は表示テキストにより選択する方法の説明です。

 

 

 

 

1.選択方法

 

セレクトタグで表示テキストからオプションの選択を行う場合には、セレクト要素に対してselect_by_visible_text()を使用します(以下参照)。

 

select.select_by_visible_text()

 

 

以下にChromeの場合の例を載せておきます。

 

以下の例の中では、os.getcwd()はカレントディレクトリを表しています。

 

実行する場合には、chromedriver.exeを同じディレクトリ内(カレントディレクトリ)に入れた状態で実行してください。

 

from selenium import webdriver
from selenium.webdriver.chrome import service as fs
from selenium.webdriver.support.select import Select
import os
selenium.webdriver.common.by import By path_driver = os.getcwd()+'\chromedriver.exe' # ドライバー指定でChromeブラウザを開く chrome_service = fs.Service(executable_path=path_driver) driver = webdriver.Chrome(service=chrome_service) 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の場合は以下になります。

6~9行目のドライバーの設定の箇所が違うだけです。

 

from selenium import webdriver
from selenium.webdriver.chrome import service as fs
from selenium.webdriver.support.select import Select
import os from selenium.webdriver.common.by import By path_driver = os.getcwd()+'\msedgedriver.exe' # ドライバー指定でEdgeブラウザを開く edge_service = fs.Service(executable_path=path_driver) driver = webdriver.Edge(service=edge_service)

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()

 

上記例では、

 

5行目までで必要なライブラリのインポートを行っています。

 

7~10行目はChrome用またはEdge用のドライバー設定となります。

 

7行目のos.getcwd()はカレントディレクトリを表しています。

 

7行目により、path_driverに、chromedriver.exeまたはmsedgedriver.exeのpathが入ります。

このパスの指定から、9,10行目でdriverの設定をしています。

 

このdriverを使用して、12行目でdriver.getの後にオープンしたいURLを指定します(上記例では********.***指定)。

 

その後、15行目で画面内で検索キーワード入力窓の要素を探索して「element」に設定しています。

 

18行目でセレクトタグの要素を指定してSelectクラスのインスタンスを作成しています。

 

21行目でテキストを指定し、24行目でSelectクラスのインスタンスに対してselect_by_visible_text(text)でテキストを引数として渡してセレクトタグのオプションを選択しています。

 

以上がセレクトタグのオプションを表示テキストから選択する方法の説明と簡単な例になります。

 

 

 

 

 

Web上のデータ取得、操作に関する参考書籍、サイトなどは、以下の過去記事にも載せていますのでよかったらご参照ください。

 

kuku81kuku81.hatenablog.com

 

 

また、Seleniumを活用したスクレイピングのための一通りの手順としてVisualStudioCodeなどのインストールや簡単なWebサイトアクセス例などは以下にも載せていますのでもしよければ見てみてください。

 

 

kuku81kuku81.hatenablog.com