SeleniumでHTML要素のdisplayスタイルを設定する方法を解説
Selenium WebDriverを使用すると、HTML要素のCSSの display スタイルを設定することができます。Webページ上の要素は、DOM(Document Object Model)を通じてJavaScriptと連携して操作されます。Seleniumは executeScript メソッドを使ってJavaScriptコマンドを実行でき、実行したいコマンドはメソッドの引数として渡します。
要素のdisplayスタイルの設定のような操作は、Javascript Executor を使って行うのが一般的です。まず getElementById メソッドで対象の要素を特定し、そのWebElementに対して style.display を適用することで、表示タイプを設定できます。
基本構文
executor.executeScript
("document.getElementById('gsc-i-id1').style.display='block';");コード例
以下にJavaでの実装例を示します。このコードでは、ChromeDriverを使ってページを開き、JavascriptExecutor経由で指定IDの要素のdisplayプロパティを「block」に変更しています。
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.JavascriptExecutor;
public class ElementStyleSet{
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\ghs6kor\\Desktop\\Java\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.tutorialspoint.com/index.htm");
driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
// JavascriptExecutorクラスとexecuteScriptメソッドを使用
JavascriptExecutor j = (JavascriptExecutor) driver;
// style.displayメソッドで表示タイプを設定
j.executeScript ("document.getElementById('gsc-i-id1').style.display='block';");
driver.close()
}
}ポイントまとめ
- Selenium単体では直接CSSを操作できないため、JavaScriptの実行が必要になる場面があります。
- JavascriptExecutor インターフェースにWebDriverをキャストして使用します。
- displayの値は「block」「none」「inline」など、通常のCSSと同じ値を指定できます。
- 非表示要素(display:none)を一時的に表示させて操作したい場合などに特に有効な手法です。
-
HTML DOMのdisplayプロパティとは?使い方と全設定値をわかりやすく解説
HTML DOMのdisplayプロパティは、要素の表示形式(表示タイプ)を設定または取得するために使用されるプロパティです。要素の表示は主に「block(ブロック)」と「inline(インライン)」の2種類に分類されます。また、display:noneを指定することで、要素を画面上から完全に非表示にすることも可能です。 displayプロパティの構文 displayプロパティを設定する場合の構文は以下のとおりです。 object.style.display = value displayプロパティに指定できる値の一覧 displayプロパティには、以下のような値を指定できます。 値説明
-
SeleniumでWebElementのHTMLコード(innerHTML)を取得する方法を解説
Selenium WebDriverを使えば、Webページ上の任意の要素(WebElement)のHTMLコードを簡単に取得できます。その鍵となるのが、要素のinnerHTML属性です。 innerHTMLとは、要素の開始タグと終了タグの間に存在するコンテンツ(HTMLソース)を指す属性です。この値を取得するには、getAttributeメソッドを使用し、引数として「innerHTML」を渡します。 構文 String s = element.getAttribute(innerHTML); 例として、次のようなHTML要素を考えてみましょう。 <h4>You are browsi