0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

備忘録Advent Calendar 2023

Day 23

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

Posted at

はじめに

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

🦁結論🦁

Seleniumの中で核となる機能の一つ。
再利用性と保守性が高く、様々なタイプのWeb要素を特定する際に有効なツール。

押さえておくべき点

  • Byクラスは、要素を特定するためのメソッド。
  • Byクラスは複雑なセレクタや動的な要素(JavaScript)なども特定することができる。
  • Byクラスは再利用性と保守性も高い。
  • 要素の特定を行う場合は基本Byクラスを用いて要素の選択をするべき。
  • find_elementメソッドとチェーンして使うことが一般的。
  • セレクタの種類が直感的で、理解しやすい。
  • Byクラスは、Selenium WebDriverの核となる機能の一つ。
  • Byクラスを利用する際にはインポートが必要。「from selenium.webdriver.common.by import By」

利用シーン

  • ユーザー名やパスワード入力欄を特定する際に使用できる。
  • ログインや送信ボタンなどを特定し、クリック操作を行える。
  • ページ内の特定のリンクを選択するために使用できる。
  • テーブルやリストから特定のデータを抽出する際に利用できる。
  • フォーム送信後(例: IDとパスワード)のエラーメッセージを特定、取得し、その内容を検証する際にも利用できる。
  • サイトのナビゲーションバーを操作する際に使用できる。
  • 複数のタブ間を切り替える操作に利用できる。
  • ポップアップやモーダルウィンドウの要素を操作する際に使用できる。
  • 特定の要素が存在するかどうかを確認する際に使用できる。

注意点

  • 動的に生成される要素の場合、セレクタが変更される可能性がある。
  • 不適切なセレクタはパフォーマンスに影響を与える可能性がある。
  • 複雑すぎるセレクタは、読みにくく、エラーの原因になる。
  • アプリケーションの更新でセレクタが変更されることがある。
  • 非表示の要素は、その状態では見つけることが困難であることがある。

よく使うセレクタ一覧

By.id("element_id”)

IDを使ったセレクタ

element_by_id = By.ID, "element_id"

By.className("class_name")

クラス名を使ったセレクタ

element_by_class_name = By.CLASS_NAME, "class_name"

By.tagName("tag_name")

タグ名を使ったセレクタ

element_by_tag_name = By.TAG_NAME, "tag_name"

By.name("element_name")

名前を使ったセレクタ

element_by_name = By.NAME, "element_name"

By.linkText("link_text")

リンクテキストを使ったセレクタ

element_by_link_text = By.LINK_TEXT, "link_text"

By.partialLinkText("partial_link_text")

部分リンクテキストを使ったセレクタ

element_by_partial_link_text = By.PARTIAL_LINK_TEXT, "partial_link_text"

By.cssSelector("css_selector")

CSSセレクタを使ったセレクタ

element_by_css_selector = By.CSS_SELECTOR, "css_selector"

By.xpath("//tag[@attribute='value']")

XPathを使ったセレクタ

element_by_xpath = By.XPATH, "//tag[@attribute='value']"

By.xpath("//*[@attribute='value']")

属性を使ったXPathセレクタ

element_by_xpath_attribute = By.XPATH, "//*[@attribute='value']"

By.xpath("//*[contains(text(),'partial_text')]")

テキスト内容を使ったXPathセレクタ

element_by_xpath_text = By.XPATH, "//*[contains(text(),'partial_text')]"

まとめ

様々な要素を特定するにはByクラスを使うって行うべき。
またフォームなどの送信によるエラーメッセージなども捉えることができる。


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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?