目次
引数に指定されたすべてのクラス名を持つ要素を返します。
- 構文
- HTMLCollection = Document.getElementsByClassName( names )
- 引数
- names 省略可
- 一致させる一つ以上のクラス名を表すDOMString。複数指定する場合は半角スペースで区切ります。
getElementsByClassNameとは
Document.getElementsByClassName メソッドは、英語の意味を直訳するとget(取得する)+Elements(要素)+ByClassName(クラス名によって)といなり、これはクラス名によって要素を取得するという意味になります。このメソッドは引数に指定されたnamesに一致するDOM要素を取得します。
Document.getElementsByClassName メソッド は引数に複数のクラス名を指定することができ、複数のクラス名を指定する場合は (半角スペース)で区切ります。
指定したクラス名を一部に持つすべての要素を取得する場合は、Document.querySelectorAll メソッドを使います。
複数クラスの指定方法
getElementsByClassNameはクラス名を複数指定した場合は、すべてに一致する要素(AND検索)を取得します。
以下は、"className1"と"className2"の両方を含む要素を取得します。
IE.document.getElementsByClassName("className1 className2")
いずれかに一致する要素(OR検索)するにはDocument.querySelectorAll メソッドを使います。querySelectorAllはCSSセレクタで指定するので「.className」の形式になります。
以下は、"className1"または"className2"のいずれかを含む要素を取得します。
IE.document.querySelectorAll(".className1, .className2")
要素をクリック
指定したクラス名の要素をクリックするには以下のように記述します。
DIM elements = IE.document.getElementsByClassName("namees")
elements.Item(0).click()
「Item(0)」は「0~elements.length-1」の範囲で適宜書き換えます。
クリックして開いた新しいタブを操作(InternetExplorer オブジェクトを取得)するには以下のように記述します。
DIM tab = getIEObj(-1)
getIEObj関数 (自作関数)は自作関数です。
他の取得方法
- Document.getElementById メソッド
- idから取得
- Document.getElementsByClassName メソッド
- タグ名から取得
プログラム実行例
Googleでの検索結果を取得
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("http://google.com")
BusyWait(IE)
IESETDATA(IE, INPUT("検索ワードを入力"), "q")
IESETDATA(IE, TRUE, "btnK")
BusyWait(IE)
DIM elements = IE.document.getElementsByClassName("rc")
FOR element IN elements
PRINT element.getElementsByClassName("LC20lb").Item(0).textContent
PRINT element.getElementsByClassName("s").Item(0).textContent
PRINT "----------"
NEXT
IE.Quit
歌ネットから歌詞を取得してテキストファイルに保存
CONST ssfDesktop = 0
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://www.uta-net.com/song/280568/")
BusyWait(IE)
DIM element, elements, name, lyrics
element = IE.document.getElementById("view_kashi")
elements = element.getElementsByClassName("title")
name = TRIM(elements.Item(0).innerText)
element = IE.document.getElementById("kashi_area")
lyrics = element.innerText
IE.Quit
DIM Shell = CREATEOLEOBJ("Shell.Application")
DIM Folder = Shell.NameSpace(ssfDesktop)
DIM path = Folder.Self.Path
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")
path = uniqueFilename(FSO.BuildPath(path, name + ".txt"))
DIM FID = FOPEN(path, F_READ OR F_WRITE)
FPUT(FID, lyrics)
FCLOSE(FID)
楽天PointClubでランクと保有ポイント数を取得する
DIM IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.Visible = TRUE
IE.Navigate("https://point.rakuten.co.jp/")
BusyWait(IE)
DIM elements
// ログインする
elements = IE.document.getElementsByClassName("name")
IFB elements.length = 0 THEN
IELINK(IE, "ログイン")
BusyWait(IE)
IESETDATA(IE, READINI("楽天", "ID", "楽天.INI"), "u") // ユーザID
IESETDATA(IE, READINI("楽天", "PASS", "楽天.INI"), "p") // パスワード
IESETDATA(IE, TRUE, "submit") // ログイン
BusyWait(IE)
ENDIF
// ランク
elements = IE.document.getElementsByClassName("rank")
elements = elements.Item(0).getElementsByTagName("em")
PRINT elements.Item(0).innerText
// ポイント
elements = IE.document.getElementsByClassName("point-total")
elements = elements.Item(0).getElementsByTagName("dd")
PRINT elements.Item(0).innerText
IE.Quit
- 総保有ポイント
- 559
ゴールド会員
559
関連記事
- CPUUSERATE関数 (スクリプト関数)
- GETDIR関数 (スクリプト関数)
- GETFORMDATA関数 (スクリプト関数)
- FSO.GetFolder メソッド
- 指定したパスのFolder オブジェクトを返します。
- File.Type プロパティ (FSO)
- 指定したファイルの種類を返します。
- small関数 (自作関数)
- 配列の中で小さい方から数えた順位の値を求めます。
- GETCTLHND関数 (スクリプト関数)
- ボタン等、オブジェクトのハンドルを取得します。
- GETID関数 (スクリプト関数)
- 指定したウィンドウのIDを取得します。第一引数に取得したいウィンドウのタイトル(一部でも可)を指定します。UWSCでウィンドウを操作するのによく使う関数です。
- POSACC関数 (スクリプト関数)
- STATUS関数 (スクリプト関数)
- ウィンドウの各種状態を取得します。タイトル・クラス名・X座標・Y座標・幅・高さなどを取得することができます。