はじめに
Seleniumで自動テストを修正/実装していると、該当の処理にたどり着くまで時間がかかる場合があります。
そんなとき、今手元で開いているブラウザの画面から直接動作確認できれば作業効率が少しあがりますよね。
今回は、Seleniumで開いているChromeブラウザを直接操作する方法を記載します。
前提条件
項目 | 内容 |
---|---|
プログラミング言語 | Java |
OS | Mac・Windows |
使用ライブラリ | バージョン |
---|---|
Selenium | 4.1.4 |
WebDriverManager | 5.1.1 |
手順
ブラウザの起動(Mac)
ユーザプロファイル保存用のフォルダを作成。
$ mkdir ~/Documents/chromedata
portと作成したフォルダを指定し、Chromeを起動。今回はport=9222を指定。
$ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome -remote-debugging-port=9222 --user-data-dir=~/Documents/chromedata
ブラウザの起動(Windows)
ユーザプロファイル保存用のフォルダを作成。
> mkdir C:\chromedata
portと作成したフォルダを指定し、Chromeを起動。今回はport=9222を指定。
> "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" -remote-debugging-port=9222 --user-data-dir=C:\chromedata
実行
使用ライブラリ(gradleを使用)
dependencies {
implementation 'org.seleniumhq.selenium:selenium-java:4.1.4'
implementation 'io.github.bonigarcia:webdrivermanager:5.1.1'
}
実際に以下のソースコードを実行すると、事前に起動していたChromeに対して直接操作することができました!
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Sample {
public static void main(String[] args){
//ChromeDriverの起動設定
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("debuggerAddress","localhost:9222"); //port番号を指定
WebDriver driver = new ChromeDriver(options);
//操作
//事前に起動したChromeでURLを開いておくと、URLを開く操作を記述しなくても次の操作が可能
//driver.get("https://www.humancrest.co.jp");
driver.findElement(By.xpath("//*[@alt=\"リグレッションテスト自動化サービスLynx\"]")).click();
}
}
最後に
いかがでしたでしょうか。
Seleniumでテストを書いている方の作業が少しでも簡単になれば幸いです。