ChromeDriver Remote - 使用browserstack禁用通知

时间:2016-03-17 13:04:44

标签: java selenium selenium-chromedriver remotewebdriver browserstack

我在BrowserStack服务上使用selenium,我需要禁用chrome通知[例如。在截图]。我在本地使用以下代码,但是Internet上的所有手册都没有帮助我在BrowserStack上使用远程ChromeDriver。

ChromeDriver notification.jpg

>@Before
    public void SetUP() throws Exception {
        ChromeOptions options = new ChromeOptions();
        Map<String, Object> prefs = new HashMap<String, Object>();
        prefs.put("profile.default_content_setting_values.notifications", 2);
        options.setExperimentalOption("prefs", prefs);
        options.addArguments("--start-maximized");
        options.addArguments("disable-popup-blocking");
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        caps.setCapability("browser", "Chrome");
        caps.setCapability("browser_version", "49.0");
        caps.setCapability("os", "Windows");
        caps.setCapability("os_version", "10");
        caps.setCapability("resolution", "1280x1024");
        caps.setCapability(ChromeOptions.CAPABILITY, options);
        caps.setCapability("browserstack.debug", "true");
        driver = new RemoteWebDriver(new URL(URL), caps);
        driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
    }

2 个答案:

答案 0 :(得分:3)

来自BrowserStack支持的好人找到了解决方案!非常感谢他们。

此代码可在远程ChromeDriver中使用:

        ChromeOptions options = new ChromeOptions();
        Map<String, Object> prefs = new HashMap<String, Object>();
        Map<String, Object> profile = new HashMap<String, Object>();
        Map<String, Object> contentSettings = new HashMap<String, Object>();
        contentSettings.put("notifications", 2);
        profile.put("managed_default_content_settings", contentSettings);
        prefs.put("profile", profile);
        options.setExperimentalOption("prefs", prefs);
        options.addArguments("--disable-plugins");
        options.addArguments("--start-maximized");
        DesiredCapabilities caps = DesiredCapabilities.chrome();
        caps.setCapability("browser", "Chrome");
        caps.setCapability("browser_version", "49.0");
        caps.setCapability("os", "Windows");
        caps.setCapability("os_version", "10");
        caps.setCapability("resolution", "1280x1024");
        caps.setCapability("browserstack.debug", "true");
        caps.setCapability(ChromeOptions.CAPABILITY, options);
        driver = new RemoteWebDriver(new URL(URL), caps);

答案 1 :(得分:0)

前一段时间,当我在Chrome上远程执行测试时,我遇到了与WebPageTest(性能测量工具)相同的问题。我可以给你的一个提示是从关闭所有通知的状态恢复浏览器配置文件。我&#34;撒谎&#34;通过以下方式手动执行此工具:

  1. 关闭浏览器实例上的通知。您可以手动执行此操作,请参见屏幕截图
  2. 使用此更改创建的配置文件(在互联网上搜索,这是默认位置)
  3. 在每次运行之前将配置文件放置在恢复配置文件的默认文件夹中,或者只是将其放在此处:
  4.   

    prefs.put(&#34; profile.default_content_setting_values.notifications&#34;,2);

    希望这有帮助, 洛拉