Selenium WebDriverとJavaで特定のDIV要素をスクロールする方法
Selenium WebDriverを使用すれば、ページ内の特定のDIV要素までスクロールすることが可能です。ただし、Selenium自体にはスクロール操作を直接実行する機能が備わっていないため、JavaScript Executorの力を借りる必要があります。
手順としては、まずXPathやCSSセレクターなどのロケーターを使って、スクロール先となる対象のDIV要素を特定します。続いて、JavaScript Executorを利用してJavaScriptのコマンドを実行します。SeleniumでJavaScriptを実行する際にはexecuteScriptメソッドを使用し、JavaScript側ではscrollIntoViewメソッドを呼び出して、引数にtrueを渡します。
構文
WebElement m = driver.findElement(By.xpath("//div[@class='slick-track']"));
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView(true);", m);コード例
以下は実際の実装例です。
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 ScrollToDiv{
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(12, TimeUnit.SECONDS);
// 対象要素を特定
WebElement m = driver.findElement(By.xpath("//div[@class='slick-track']"));
// JavaScript Executorでスクロールを実行
((JavascriptExecutor)driver).executeScript("arguments[0].scrollIntoView(true);", m);
Thread.sleep(800);
driver.quit();
}
}実行結果
上記のコードを実行すると、指定したDIV要素(class属性が「slick-track」の要素)がブラウザの表示範囲内に自動的にスクロールされます。scrollIntoView(true)は要素をビューの先頭に合わせてスクロールする動作となり、スムーズに対象要素を画面上に表示させることができます。

-
PythonとSelenium WebDriverで特定のドメインにCookieを設定する方法
PythonのSelenium WebDriverでは、特定のドメインに対してCookieを設定することができます。Cookieはブラウザが送受信する情報を保持するために使われるもので、キーと値(key-value)のペア形式で構成され、サーバーからブラウザへ渡されるメッセージのような役割を果たします。Cookieを追加するにはadd_cookieメソッドを使用します。このメソッドにはキーと値がパラメータとして渡されます。すべてのCookieを取得したい場合はget_cookiesメソッドを、特定のCookieだけを取得したい場合はget_cookieメソッドを使用します。また、Cookieを
-
PythonでPhantomJSとSelenium WebDriverを使ってウィンドウサイズを設定する方法
PhantomJSとSelenium WebDriverでウィンドウサイズを設定する方法Pythonでは、PhantomJSとSelenium WebDriverを組み合わせることで、ブラウザのウィンドウサイズを自由に制御できます。PhantomJSを利用するには、まずwebdriver.PhantomJSクラスのドライバーオブジェクトを作成します。その際、phantomjs.exeドライバーファイルへのパスを引数として渡してください。ウィンドウサイズを設定するには、set_window_sizeメソッドを使用し、幅と高さを引数として指定します。また、現在のブラウザのウィンドウサイズを取得した