如何使用Selenium Webdriver处理浏览器级别的通知

时间:2016-07-14 07:12:58

标签: java selenium webdriver core

我使用Selenium Webdriver和核心Java自动化一些测试用例,在Chrome浏览器中点击一个测试用例点击按钮我正在获得浏览器级别通知'显示带有选项Allow和Block'的通知。我想选择允许选项。谁能知道如何使用Selenium webdriver处理这种通知。 请参阅以下快照了解更多详情 enter image description here

6 个答案:

答案 0 :(得分:3)

WebDriver driver ;
        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("permissions.default.desktop-notification", 1);
        DesiredCapabilities capabilities=DesiredCapabilities.firefox();
        capabilities.setCapability(FirefoxDriver.PROFILE, profile);
        driver = new FirefoxDriver(capabilities);
        driver.get("your Web site"); 

答案 1 :(得分:2)

处理此类要求的步骤:

  1. 打开Firefox配置文件管理器(转到“开始”菜单,键入firefox.exe -p以启动配置文件管理器)
  2. 创建新的个人资料(个人资料的名称为customfirefox
  3. 导航至about:permissions
  4. 执行所需的配置并保存个人资料
  5. 现在使用新创建的配置文件通过调用Firefox

    来运行测试
    ProfilesIni ffProfiles = new ProfilesIni();
    FirefoxProfile profile = ffProfiles.getProfile("customfirefox");
    WebDriver driver = new FirefoxDriver(profile);
    

    这将始终使用firefox和配置文件中保存的自定义配置。

    希望这对你有用.. !!!

    祝你好运。

答案 2 :(得分:2)

请按照以下步骤操作:

第1步:

//创建ChromeOptions类的实例

ChromeOptions options = new ChromeOptions();

第2步:

//添加Chrome开关以禁用通知 - “ - 禁用通知

options.addArguments("--disable-notifications");

第3步:

//设置驱动程序exe的路径

System.setProperty("webdriver.chrome.driver","path/to/driver/exe");

第4步:

//将ChromeOptions实例传递给ChromeDriver构造函数

WebDriver driver =new ChromeDriver(options);

答案 3 :(得分:2)

您可以使用以下代码来允许Chrome发送通知:

ChromeOptions options=new ChromeOptions();
Map<String, Object> prefs=new HashMap<String,Object>();
prefs.put("profile.default_content_setting_values.notifications", 1);
//1-Allow, 2-Block, 0-default
options.setExperimentalOption("prefs",prefs);
ChromeDriver driver=new ChromeDriver(options);

它对我来说非常合适。如果它不适合你,请告诉我。 干杯!!

答案 4 :(得分:0)

这是Chrome浏览器提醒

WebDriverWait wait = new WebDriverWait(driver, 2) \\ wait for alert to pop up; Alert alert = wait.until(ExpectedConditions.alertIsPresent()) \\ Check for alert; alert.accept(); \\ accept it- In your case it allows notification

这适用于Chrome 注意:如果您使用隐身模式,则不应收到此类通知警告。

答案 5 :(得分:0)

根据我的理解,这些弹出窗口不是javascripts one.So selenium不会处理它们。同样有一种身份验证弹出窗口,我们通过像http://username:password@www.test.com这样的黑客进行自动化,这里在url中提供用户名和密码。 在你的情况下,Praveen提到你必须创建浏览器配置文件(FF或chrome)。在chrome中,可以通过所需的cabilities选项或chrome选项功能创建配置文件。