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?

社内IEモードのページでもXPATHを取得する方法【Python × Selenium × Edge】

0
Last updated at Posted at 2026-06-05

はじめに

Seleniumを使ったブラウザ自動操作では、操作対象のHTML要素を特定するために XPATH がよく使われます。
XPATHはブラウザの開発者ツールから簡単に取得できますが、社内イントラネットではこれができないことがあります。

EdgeがIEモードで動作している環境では、右クリックしても「開発者ツールで調査する」が表示されず、XPATHが取得できません。
この記事では、そんな状況を VSCodeのデバッガを活用して回避する方法 を紹介します。

1〜3章はサンプルプログラムとXPATH取得の基礎知識です。本題は4章です。すでにSeleniumの基本をご存じの方は4章から読んでいただいてもOKです。


1. XPATHを使ったサンプルプログラム

1-1. 機能概要

  • 日経新聞の検索ページを開き、「宇宙」というキーワードで検索する
  • 検索結果の一覧からトップ記事のタイトルを取得して表示する
  • ブラウザは Edge を使用する(Chromeではなく)

1-2. サンプルプログラム

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.edge.service import Service

# パラメータ
KEYWORD = '宇宙'
SEARCH_URL = 'https://www.nikkei.com/search?'
SEARCH_FIELD_XPATH = '/html/body/main/header/div/div/div[1]/input'
SEARCH_TOP_XPATH = '/html/body/main/div[3]/div/div/div[2]/div[2]/div/div[1]/div/div/div/div/div/div[1]/div[1]/h3/a'

# メインルーチン
def main():
    driver = webdriver.Edge()

    try:
        driver.get(SEARCH_URL)

        search_field = driver.find_element(by=By.XPATH, value=SEARCH_FIELD_XPATH)
        search_field.clear()
        search_field.send_keys(KEYWORD)
        time.sleep(5)

        top_news = driver.find_element(by=By.XPATH, value=SEARCH_TOP_XPATH)
        print(f"{KEYWORD}」について検索した結果のトップ記事")
        print(top_news.text)

    finally:
        driver.quit()

if __name__ == "__main__":
    main()

1-3. プログラムの説明

上記プログラムでは Selenium を使用してEdgeブラウザを操作しています。

下図は実行時に開く日経新聞のページです。
SEARCH_FIELD_XPATHSEARCH_TOP_XPATH の2つの変数がXPATHに対応しており、それぞれ赤字で示されています。

NIKKEI_HP.png

1-4. 実行結果

C:\Qiita_xpath>python xpath_sample.py
「宇宙」について検索した結果のトップ記事
JAXAが次世代空モビリティー実験 北海道大樹町、HOSPO滑走路活用

C:\Qiita_xpath>

2. 事前準備(Seleniumのインストール)

Seleniumライブラリがインストールされていない場合は、以下のコマンドでインストールします。

pip install selenium

エラーになる場合は、python経由でインストールしてください。

python -m pip install selenium

Edgeドライバーについて

通常は webdriver.Edge() 実行時にEdgeDriverが自動ダウンロードされます。
ただし、社内ネットワークなどの制限がある環境では手動でのダウンロードが必要になる場合があります。

その場合は以下の手順を行います。

  1. 以下のサイトから Stable Channelx64msedgedriver.exe をダウンロードする
    👉 https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/?form=MA13LH

  2. ダウンロードした msedgedriver.exe を、パスの通っているフォルダxpath_sample.py と同じフォルダにコピーする

なお、EdgeとEdgeドライバーのバージョンはセットになっています。手動でのダウンロードの場合、Edgeが(自動で)アップデートされたタイミングで、Edgeドライバーも都度手動で更新して下さい。


3. XPATHの取得方法

XPATHの取得方法については、以下の記事が参考になります。

👉 https://qiita.com/ywindish/items/5a992c49387d81df900e
(ywindish氏)

Edgeでの注意点

上記記事では右クリックして「検証」を選ぶと書かれていますが、これはChromeの場合です。
Edgeの場合は「開発者ツールで調査する」を選択してください。それ以外の手順は同じです。

Edge_Menu.png


4. 社内イントラネット(IEモード)でXPATHが取得できない場合

Edgeで社内ホームページを右クリックしても「開発者ツールで調査する」が表示されないケースがあります。
これは EdgeがIEモードで動作していることが原因と考えられます。

補足:EdgeのIEモードについて
少なくとも2029年までサポートが継続される予定ですが、いつかはEdge(Chromiumベース)への移行が必要になります。
社内システムの刷新にはコストがかかるため、すぐに移行できない企業も多いのが現状です。

解決策:VSCodeのデバッガを活用する

XPATHが未確定のまま、以下の手順で対処できます。

  1. PythonプログラムをVSCodeなどのデバッガ付きIDEで実行する
  2. XPATHを使う直前の行にブレークポイントを設定する
  3. ブレークポイントで処理が止まった状態で、Python制御下のEdgeウィンドウを操作する

下図は xpath_sample.py をVSCodeでデバッグ実行し、ブレークポイントで止まっているところです。

VScode_Debug.png

この状態では、PythonがEdgeを制御しているため、IEモードの設定が無視されます
Edgeウィンドウで右クリックすると「開発者ツールで調査する」が表示されるようになります。

「開発者ツールで調査する」を 2回実行 すると、デベロッパーツールが正しく表示されることがあります(理由は不明ですが、実績あり)。

デベロッパーツールが開いたら、対象要素を右クリックして「Copy → Copy XPath」でXPATHを取得できます。


5. おまけ:IEモード対応への改造

IEモードで動作するシステムをPython+Edgeで自動化しようとすると、システム要件のミスマッチから正常動作しないことがあります。

XPATHが取得できた後は、以下の記事を参考にIEモード対応に改造することをおすすめします。


まとめ

状況 対処法
通常のページでXPATHを取得したい Edgeで右クリック →「開発者ツールで調査する」
社内IEモードページでXPATHが取得できない VSCode等でブレークポイント実行し、Python制御下のEdgeから取得
Seleniumがインストールされていない pip install selenium
EdgeDriverが自動DLされない msedgedriver.exeを手動でDLして配置

XPATHを使いこなすことで、ブラウザ操作の自動化の幅が大きく広がります。
社内システム特有の問題も、デバッガを活用することで柔軟に対処できます。ぜひ試してみてください!


その他の記事は BB研究所 で公開しています。

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?