SeleniumでWebElementのHTMLコード(innerHTML)を取得する方法を解説
Selenium WebDriverを使えば、Webページ上の任意の要素(WebElement)のHTMLコードを簡単に取得できます。その鍵となるのが、要素のinnerHTML属性です。
innerHTMLとは、要素の開始タグと終了タグの間に存在するコンテンツ(HTMLソース)を指す属性です。この値を取得するには、getAttributeメソッドを使用し、引数として「innerHTML」を渡します。
構文
String s = element.getAttribute("innerHTML");
例として、次のようなHTML要素を考えてみましょう。
<h4>You are browsing the best resource for <b>Online Education</b></h4>
この場合、h4要素のinnerHTMLは「You are browsing the best resource for <b>Online Education</b>」となります。つまり、タグ自体ではなく、タグの内側にあるテキストや子要素まで含めたHTMLが取得される点に注意してください。
実装例
以下は、JavaでSelenium WebDriverを使って実際にinnerHTMLを取得するサンプルコードです。
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.By;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebElement;
public class HtmlCodeElement {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
driver.get("https://www.tutorialspoint.com/index.htm");
// 要素を特定
WebElement l = driver.findElement(By.cssSelector("h4"));
// getAttributeメソッドでinnerHTMLを取得
String s = l.getAttribute("innerHTML");
System.out.println("HTML code of element: " + s);
driver.close();
}
}
コードのポイント
- chromedriverのパス設定:System.setPropertyでChromeDriverの実行ファイルへのパスを指定します。
- 暗黙的待機:implicitlyWaitを設定することで、要素が見つかるまで最大5秒待機し、安定したテストを実現します。
- 要素の特定:By.cssSelector("h4")により、ページ内の最初のh4要素を取得しています。
- innerHTMLの取得:getAttribute("innerHTML")の戻り値を文字列として受け取り、コンソールに出力します。
実行結果
上記のコードを実行すると、コンソールに以下のように対象要素のHTMLコードが出力されます。
HTML code of element: You are browsing the best resource for <b>Online Education</b>
なお、タグを含まない表示用のテキストだけが必要な場合は「textContent」を、開始タグから終了タグまで要素全体のHTMLが必要な場合は「outerHTML」を引数に指定することでも同様に取得できます。用途に応じて使い分けると便利です。
-
HTMLコードで動画を埋め込む方法|iframeタグの使い方をわかりやすく解説
HTMLページに動画を埋め込むには、<iframe>要素を使用します。src属性には動画のURL(埋め込みリンク)を指定し、width属性とheight属性で動画プレーヤーのサイズを適切に設定しましょう。動画の埋め込みリンクとは?ここでいう「動画のURL」とは、動画そのものへのリンクではなく、埋め込み用リンクのことです。本記事では、例として最も利用されているYouTubeの動画を埋め込む手順を紹介します。埋め込みリンクを取得するには、まずYouTubeで対象の動画を開き、以下の手順で操作します。動画下部にある「共有」ボタンをクリックする表示されたメニューから「埋め込む」を選択する埋
-
PythonとSelenium WebDriverでWebElementのHTMLソースを取得する方法
Selenium WebDriverを使えば、ページ上の任意のWebElement(Web要素)のHTMLソースを簡単に取得できます。最も基本的な方法は、要素が持つinnerHTML属性を取得することです。innerHTMLは、開始タグと終了タグの間に存在する内容(内部のHTMLマークアップを含む)に相当する属性です。取得にはget_attributeメソッドを使用し、引数として「innerHTML」を渡します。構文s = element.get_attribute(innerHTML)もう一つの方法として、JavaScript Executorを利用してHTMLソースを取得することもできます