今からでも間に合う

技術を学ぶのは今からでも遅くない

python入門~seleniumで要素を取得する~

こちらでブラウザをを起動できたので、次はブラウザを実際に操作してみます。
基本は、ページ内の要素(Element)を取得して、その要素に対して操作を要求します。

環境

  • VSCode
  • python 3.11.0
  • Edge WEbDriver

使用するライブラリ

  • selenium

パッケージのインストール方法についてはこちら

要素の取得方法

開発者ツール使って要素を特定

Edgeの場合、F12キーを押下することで開発者ツールを起動できます。

開発者ツール

起動して「要素」タブを選ぶと、表示しているページの構成要素を見ることができます。

ここから、操作したい要素を特定し、アクセスするためのコードを書いていきます。

以下の入力フォームに文字列を入力してみます。

ブラウザを操作する

find_element()で要素を取得する

開発者ツールで見ると、入力フォームは以下のような記述でした。
この情報を使って、要素を取得します。

googleの検索文字入力要素

要素を取得するにはfind_elementを使用します。

from selenium import webdriver as wd
from selenium.webdriver.common.by import By
  
driver = wd.Edge(executable_path=r".\msedgedriver.exe")
driver.get("http://google.com")
  
input = driver.find_element(by=By.NAME, value="q")

第1引数に探し方、第2引数に探すキーワードを指定します。
今回はnameがアクセスしやすそうだったのでBy.NAMEで探しています。
他にも、以下の探し方があります。

  • ID
  • XPATH
  • LINK_TEXT
  • PARTIAL_LINK_TEXT
  • NAME
  • TAG_NAME
  • CLASS_NAME
  • CSS_SELECTOR

キー入力をエミュレートする

見つかった要素に対して文字列を入力させます。

input.send_keys("test")

文字が入力されました。

入力を確定する

入力した文字列で検索を実行します。

input.submit()

submit()(送信)メソッドを呼べばOKです。

入力が確定し、画面が遷移しました。

操作結果

おしまい

要素の取得は基本的にはこれの繰り返しです。
要素によっては都度可変なもの(今回の例だとclassが該当)もあるので、ユニークに識別できる情報を指定する必要があります。(htmlのことあまり知らないのでこれが苦手)

python入門Top

プライバシーポリシー


d払いポイントGETモール