【初心者向け】Seleniumで要素を取得する方法|XPathの使い方も解説

システム開発
このサイトはアフィリエイト広告を掲載しています。

この記事のレベル

難易度2.0
実用性4.0
学習コスト1.0
この記事でわかること
  • Seleniumとは何か、何ができるのか
  • Seleniumで要素を取得する方法
takata
takata

この記事はこんな人におすすめ!

  • Seleniumの基礎を学びたい方
  • Seleniumuを活用したいが、要素指定がよくわからず悩んでいる方

はじめに

Seleniumを使えば、ブラウザを自動で操作することができます。ただし、その操作の第一歩となるのが「要素を正しく取得すること」です。

たとえば、検索ボックスに文字を入力したり、検索ボタンをクリックしたり…様々な操作を自動化できますが、すべては画面上のHTML要素を取得できるかどうかにかかっています。

この記事では、Seleniumを使った自動化を実現するために必要不可欠な、要素を取得する方法と特におすすめのXPathを使った取得方法について、具体例を交えて解説します。

Seleniumってなに?

Selenium(セレニウム)は、Webブラウザを自動操作するためのフレームワークです。
もともとはWebアプリのテスト自動化に使われていましたが、今では次のような幅広い用途で使われています。

  • 毎日の定型業務の自動化(勤怠、情報取得など)
  • スクレイピング(Web上のデータを取得)
  • サイト間のデータ連携(入力・確認など)

Seleniumを使ったブラウザ操作の自動化について、具体的に学びたい方は↓の記事を参考にして下さい。

Seleniumにおける「要素」とは?

Seleniumでブラウザ操作を自動化するには、ページ上の「要素(element)」を見つけて操作する必要があります。

ここでの「要素」とは、HTMLの中のひとつひとつのパーツのこと。たとえば…

  • 入力ボックス(<input>)
  • ボタン(<button>や<a>)
  • 見出しやテキスト(<h1>、<p> など)
  • 表やリスト、リンクなど

つまり、Seleniumにとって「要素を取得する」とは、ページ内の“どの部分”をクリックするのか、入力するのかを指定することなのです。

しかし実際には、ページの構造が複雑だったり、似たような要素がたくさんあったりして、「正しい要素を見つける」ことが意外にややこしいと感じる人も多いです。

そんな人向けに、「要素の取得方法」と「XPathの使い方」を具体例で解説していくので、ぜひ順番に読み進めてみてください。

要素を見つけるには?開発者ツールの使い方

ここまでの説明で、「Seleniumを使いこなすには、要素(element)を特定して取得する必要がある」ということはご理解いただけたと思います。

では、どうやってその要素を見つけるのか…?
答えは、ブラウザの開発者ツール(DevTools)を使うことです。

ここからは、Google Chromeの開発者ツールを使って、IDやclass、XPathを調べる方法をわかりやすく紹介します。

ステップ① 開発者ツールを開く

  1. Chromeで https://www.google.com を開く
  2. 検索ボックスの上で右クリック →「検証」を選択
  3. 画面右側または下にHTML構造が表示されます(開発者ツール)

ステップ② 対象の要素を確認する

今回は検索ボックスを例に、要素を確認する方法を紹介します。

  1. 確認対象の要素をクリックし、HTMLを確認する
  2. クラス名や要素名を確認する ※今回の場合、class="gLFyf" name="q"であることが確認できます。

ステップ③ コードに反映する

以下のコードは、

「開いているWebページの中から、name 属性が 'q' の要素(=検索ボックス)を探して取得し、それを変数 search_box に代入する」

という意味です。

その後、検索ボックスにテキストを入力する処理では、代入した search_box を使って実現します。

search_box = driver.find_element(By.NAME, "q")

参考 XPathによる要素の指定方法

HTMLの class 属性などは、複数の要素で共通して使われることが多く、クラス名だけでは目的の要素を一意に特定できないケースがあります。

そういった場合に有効なのが、XPathによる要素の指定です。

  • XPathをコピーする手順
    1. 対象の要素(ハイライト箇所)の上で右クリック
    2. 「Copy」→「Copy XPath」を選択

コピーされたXPathを、Seleniumで次のように使います。

element = driver.find_element(By.XPATH, '貼り付けたXPath')

まとめ

今回の記事を通じて、以下のポイントを理解できたと思います。

  • Seleniumにおける「要素」とは何か
  • 開発者ツールを使って要素を調べる方法
  • 要素を取得するための基本的な書き方(By.NAME, By.XPATHなど)
  • XPathを使った指定方法と活用例

ぜひ、実際にコードを試してみて、あなたの作業に合った自動化にチャレンジしてみてください!

Seleniumを使ったブラウザ操作の自動化について、具体的な実現方法を学びたい方は↓の記事を参考にして下さい。

さらに学びたい方へ

「ワンランク上のビジネススキルを身につけたい」

そんな方に注目されているのが、オンライン学習サービスです。

中でも特におすすめなのが、人気の2大サービスSchoo(スクー) Udemy(ユーデミー) icon

特徴や違いを比較しながら、あなたに合った選び方をわかりやすく解説します。

SchooとUdemyの特徴は?

あなたに向いているのはSchoo?Udemy?

Schoo(スクー)がおすすめな人
  • まずは無料で試してみたい人
  • 月額定額で色んな講座を受けたい人
  • ビジネススキル全般を学びたい人
  • 隙間時間でスキルアップしたい人
\ Schooプレミアム 7日間お試し”無料” /

Udemy(ユーデミー)がおすすめな人
  • 講座単位で支払いをしたい人
  • 特定の知識・スキルを学びたい人
  • 学習の時間を集中的に確保できる人
\ 購入後30日以内であれば”返金可能” /

コメント