これは古い質問であることは知っています。Disable Chrome notifications (Selenium)などのいくつかの投稿から回答を試しました。
残念ながら、どれも機能しませんでした。ブラウザの通知ポップアップが引き続き表示され、シミュレーションが中断されます。
私の Chrome バージョンは 75.0.3770.100 (公式ビルド) (64 ビット) で、MacOS で実行されています。
編集:
この質問の後、Firefox および Chrome で Selenium を使用してプッシュ通知を無効にする方法の複製としてマークされましたか? 、解決策を試しましたが、それでもうまくいきませんでした。
String chromePath = "somepath/selenium-2.48.2/chromedriver";
System.setProperty("webdriver.chrome.driver", chromePath);
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.notifications", 2);
prefs.put("credentials_enable_service", false);
prefs.put("profile.password_manager_enabled", false);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
options.addArguments("--disable-notifications");
driver = new ChromeDriver(options);
以下は、私が試した元のソリューションです。
String chromePath = "somepathto/chromedriver";
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--disable-notifications");
System.setProperty("webdriver.chrome.driver", chromePath);
WebDriver driver = new ChromeDriver(chromeOptions);
// Login
try {
driver.get(sometestURL);
driver.manage().window().maximize();
// do some operations
} catch (Exception ex) {
System.out.println(ex);
}
私もこれを試しました:
String chromePath = "somepath/selenium-2.48.2/chromedriver";
Map<String, Object> prefs = new HashMap<String, Object>();
prefs.put("profile.default_content_setting_values.notifications", 2);
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("prefs", prefs);
System.setProperty("webdriver.chrome.driver", chromePath);
WebDriver driver = new ChromeDriver(chromeOptions);
ただし、ウィンドウの左上に「xxxxwebsiteが通知を表示したい」という通知が引き続き表示されます。ブロックを許可します。
私が正しくしなかったことは何ですか?