【问题标题】:Disable Chrome notifications (Selenium)禁用 Chrome 通知 (Selenium)
【发布时间】:2016-03-24 10:37:45
【问题描述】:

我只想在 Selenium Java 应用程序打开的 Chrome 中禁用 Chrome 通知。 (使用java代码)

类似这样的通知:

问题是关闭浏览器窗口后手动设置的设置会丢失。

【问题讨论】:

  • 我不明白为什么有人点击了这个问题!我认为他们不了解问题本身......

标签: java google-chrome selenium selenium-chromedriver


【解决方案1】:
public class MultipleWindowHandle
{
    public static void main(String[] args)
    {
        System.setProperty("webdriver.chrome.driver", "E:\\NEWSEL\\chromedriver.exe");

        // Create object of HashMap Class as shown below.
        Map<String, Object> prefs = new HashMap<String, Object>();

        // Set the notification setting it will override the default setting.
        prefs.put("profile.default_content_setting_values.notifications", 2);

        // Create object of ChromeOption class.
        ChromeOptions Roptions = new ChromeOptions();

        // Set the experimental option.
        Roptions.setExperimentalOption("prefs", prefs);

        // Open chrome browser.
        ChromeDriver driver = new ChromeDriver(Roptions);
        driver.get("https://my.monsterindia.com/login.html");

        Set<String> id = driver.getWindowHandles();
        Object[] data = id.toArray();
        driver.switchTo().window((String)data[1]); driver.close();
    }
}

【讨论】:

  • 虽然此代码可以回答问题,但提供有关其解决问题的方式和原因的信息可提高其长期价值
【解决方案2】:

Capybara 或 Watir 有人需要这个,您可以将 --disable-notifications 作为参数传递,例如 "--start-fullscreen", "--disable-infobars"。以下工作:

Capybara.register_driver :chrome do |app|
  args = ["--disable-notifications"]
  Capybara::Selenium::Driver.new(app, {:browser => :chrome, :args => args})
end

【讨论】:

    【解决方案3】:
                ChromeOptions ops = new ChromeOptions();
                ops.addArguments("--disable-notifications");
                System.setProperty("webdriver.chrome.driver", "./lib/chromedriver");
                driver = new ChromeDriver(ops);
    

    【讨论】:

    • 从 Chrome 版本 74 开始,将参数 --disable-notifications 传递给应用程序效果最佳
    【解决方案4】:

    你可以使用:

    chrome_options = Options()
    chrome_options.add_argument("--disable-notifications")
    browser = webdriver.Chrome(chrome_options=chrome_options)
    

    【讨论】:

    • 请提供更多信息,而不仅仅是代码,例如它是如何工作的,或者为什么它比现有解决方案更好
    【解决方案5】:

    此问题已在“chromedriver-users”谷歌论坛中得到解答。 这是有效的答案:

    Map<String, Object> prefs = new HashMap<String, Object>();
    prefs.put("profile.default_content_setting_values.notifications", 2);
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("prefs", prefs);
    WebDriver driver = new ChromeDriver(options);
    

    【讨论】:

    • 有人可以帮助将此代码用于 C# 版本吗?非常感谢。
    猜你喜欢
    • 1970-01-01
    • 2018-09-19
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-13
    • 2017-05-15
    相关资源
    最近更新 更多