7
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.

ChromeでHTMLソースコードを表示し、その情報をSeleniumの要素指定に利用する

Posted at

はじめに

Seleniumでは、対象ページのHTMLソースコードの情報を利用して要素を指定し、クリックや文字入力などの操作を行います。
今回はChromeでHTMLソースコードを表示する方法と、表示したHTMLソースコードをSeleniumで利用する例を紹介いたします。

ChromeでHTMLソースコードを表示する

まず、HTMLソースコードを表示したいページを開いた状態で右クリックします。コメント 2023-02-14 200549.png

表示されたメニューから「検証」をクリックします。コメント 2023-02-14 200550.png

ブラウザの右側に検証画面が表示されます。
赤枠で囲っている部分がHTMLソースコードになります。コメント 2023-02-14 201513.png

また、赤丸で囲っているアイコンをクリック後HTMLソースコード上でどこにあるか確認したい部分をクリックすると、HTMLソースコードがハイライトされます。
画像はGoogleのトップページにて、「Google 検索」の部分を確認しようとした場合のものになります。コメント 2023-02-14 202842.pngコメント 2023-02-14 203351.png
コメント 2023-02-14 203414.png

表示したHTMLソースコードをSeleniumで利用する例

今回は前章を参考に、「Google 検索」をクリックする操作をPython + Seleniumで実装するコード例を記載します。

まずクリックする要素について、XPATHの情報を取得します。
前章でハイライトされた部分で右クリックし、「Copy > Copy XPath」をクリックします。
ちなみに「Copy full XPath」の方でも問題ないです。コメント 2023-02-16 185537.png
上記操作で得たXPATH情報がこちらになります。

/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]

SeleniumにてXPATH情報から要素を取得するためには、find_element_by_xpathを利用します。
そのため、今回は要素取得のコードが以下のようになります。

driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]")

後はシンプルに、取得した要素の後ろに.click()をつけることで、要素に対してクリックする動作をさせることができます。

driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]").click()

サンプルコード

前章で紹介した例を使用しているサンプルコードを載せておきます。
動作内容は、Googleのトップページにて検索欄で「chrome」と入力後「Google 検索」ボタンをクリックする、というものになっております。

サンプルコード
from selenium import webdriver
from time import sleep

driver = webdriver.Chrome()

driver.get("https://www.google.com")
sleep(3)
driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[1]/div/div[2]/input").send_keys("chrome")
sleep(3)
driver.find_element_by_xpath("/html/body/div[1]/div[3]/form/div[1]/div[1]/div[4]/center/input[1]").click()
sleep(3)
driver.quit()

最後に

Seleniumで自動ブラウザ操作を実装する際に、HTMLソースコードから情報を取得することはほぼ必須で行う作業になると思いますので、ぜひ活用してください。

また今回はXPATH情報を取得した例を挙げてますが、他にもIDやNAME情報を利用して要素を取得することもできます。
他の情報を利用した要素取得についてはこちらのサイトが参考になると思います。

最後まで読んでいただき、ありがとうございました。

7
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
7
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?