seleniumを使ってブラウザの位置情報を偽装する方法(Chrome)

seleniumを使ってChromeの位置情報を偽装するためには、以下の設定を使用すれば良い。

import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.chrome.ChromeDriver;

double latitude = 35.0;
double longitude = 139.0;

Map<String, Object> chromePrefs = new HashMap<>();
chromePrefs.put("profile.managed_default_content_settings.geolocation", 1);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("prefs", chromePrefs);
ChromeDriver webDriver = new ChromeDriver(chromeOptions);
webDriver.setLocation(new Location(latitude, longitude, 0));

ただし、Chromeの場合はヘッドレスモードで実行すると、位置情報の偽装が適用されなくなってしまうため注意。