1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

備忘録Advent Calendar 2023

Day 22

【seleniumクラスシリーズ】Selectクラス

Posted at

はじめに

【seleniumクラスシリーズ】Selectに関しての備忘録です。
初心者です😅
間違えてる部分が多々あると思います。
もし見つけた場合、ツッコミいただけると助かります🙇

🦁結論🦁

seleniumのselectクラスはドロップダウンメニューを操作する時に使う時に使う便利なメソッドがたくさんあるクラス。

押さえておくべき点

  • SelectクラスはSeleniumでドロップダウンメニューを操作するために使用。(セルの中から一つを選ぶようなメニュー)
  • タグの子要素である選択するための複数のメソッドがある。
  • テキスト、値、インデックスを選択できる。
  • 複数選択可能なドロップダウンにも対応。
  • オプションのリストを取得することが可能
  • 選択されているオプションを取得するメソッドがある。

利用シーン

  • ユーザー登録フォームの国籍選択など、ドロップダウンリストの操作が必要な場面。
  • ECサイトでの商品カテゴリ選択。
  • 検索フォームでの条件指定。
  • 日付や時間の選択。
  • 設定画面でのオプション選択。

注意点

  • タグ以外には使用できない
  • カスタムドロップダウンやJavaScriptで作成されたドロップダウンには適用できない場合がある。
  • ページが完全にロードされてからSelectオブジェクトを使う必要がある。
  • 複数選択可能なドロップダウンでは、適切なメソッドを使用する必要がある。
  • オプションを選択する際に、正確なテキスト、値、インデックスを指定する必要がある。
  • Webドライバーとの互換性を確認する必要がある。
  • ブラウザのバージョンによっては動作しない可能性がある。

メソッド一覧

select_by_value(value)

値によってオプションを選択。

select = Select(driver.find_element_by_id('select_element_id'))
select.select_by_value('value_to_select')

select_by_index(index)

インデックスによってオプションを選択。

select = Select(driver.find_element_by_id('select_element_id'))
select.select_by_index(0)  # インデックス0で最初のオプションを選択

select_by_visible_text(text)

表示されているテキストによってオプションを選択。

select = Select(driver.find_element_by_id('select_element_id'))
select.select_by_visible_text('Visible Text')

deselect_all()

すべての選択を解除(複数選択の場合)。

select = Select(driver.find_element_by_id('select_element_id'))
select.deselect_all()

deselect_by_value(value)

値によって選択を解除。

select = Select(driver.find_element_by_id('select_element_id'))
select.deselect_by_value('value_to_deselect')

deselect_by_index(index)

インデックスによって選択を解除。

select = Select(driver.find_element_by_id('select_element_id'))
select.deselect_by_index(0)

deselect_by_visible_text(text)

表示されているテキストによって選択を解除。

select = Select(driver.find_element_by_id('select_element_id'))
select.deselect_by_visible_text('Visible Text')

all_selected_options

選択されているすべてのオプションを返す。

select = Select(driver.find_element_by_id('select_element_id'))
all_options = [option.text for option in select.all_selected_options]

first_selected_option

最初に選択されたオプションを返す。

select = Select(driver.find_element_by_id('select_element_id'))
first_option = select.first_selected_option.text

options

利用可能なすべてのオプションを返す。

select = Select(driver.find_element_by_id('select_element_id'))
all_options = [option.text for option in select.options]

まとめ

WEBサイトの自動化を行う上で、複数の選択肢がある中から、選択する場面などにこのselectクラスを使う。注意点を押さえて、メソッドを利用して選択する、または選択を解除することができるクラス。


押さえておくべき点

  • SelectクラスはSeleniumでドロップダウンメニューを操作するために使用。(セルの中から一つを選ぶようなメニュー)
  • タグの子要素である選択するための複数のメソッドがある。
  • テキスト、値、インデックスを選択できる。
  • 複数選択可能なドロップダウンにも対応。
  • オプションのリストを取得することが可能
  • 選択されているオプションを取得するメソッドがある。
1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?