2016-07-14 32 views
4

Ich automatisiere einige Testfälle mit Selenium Webdriver und Core Java, im Chrome Browser für einen Testfall beim Klicken auf die Schaltfläche Ich erhalte Browserbenachrichtigung 'Zeige Benachrichtigungen mit Optionen Zulassen und Blockieren' . Ich möchte die Option Zulassen auswählen. Kann jemand diese Art von Benachrichtigungen mit Selenium Webdriver umgehen. entnehmen Sie bitte für weitere Informationen zu folgenden Snapshot enter image description hereWie man browse level notification mit Selenium Webdriver behandelt

Antwort

1

Schritte dieser Art von Anforderungen zu handhaben:

  1. Öffnen Sie Firefox Profilmanager
  2. (gehen Sie auf Start, Typ firefox.exe -p Profilmanager starten)
  3. a Erstellen neues Profil (Bsp. Name des Profils ist customfirefox)
  4. Navigieren Sie zu about:permissions
  5. Führen Sie die erforderlichen Konfigurationen und S ave das Profil

nun das neu erstellte Profil verwenden, um Ihren Test auszuführen, indem Sie den Firefox

Aufruf
ProfilesIni ffProfiles = new ProfilesIni(); 
FirefoxProfile profile = ffProfiles.getProfile("customfirefox"); 
WebDriver driver = new FirefoxDriver(profile); 

Dies wird immer die firefox mit den benutzerdefinierten Konfigurationen auf dem Profil gespeichert verwenden.

Hoffe, das funktioniert für Sie .. !!!

Viel Glück.

+1

Hallo, Entschuldigung, Browser zu vergessen. Ich benutze Chrome Browser. jede Lösung für Chrome-Browser – user2085714

-1

Dies ist ein Chrome-Browser Alarm

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

Das funktioniert gut in Chrome Hinweis: Wenn Sie Incognito verwenden mode- Sie keine solche Benachrichtigung Benachrichtigungen erhalten soll.

+0

Ich versuchte dies und das hat nicht für mich funktioniert. Dieses Pop-up scheint kein Alarm zu sein ... – Eliyahu

+0

Versuchen Sie, die Wartezeit zu erhöhen, und überprüfen Sie. –

+0

Andernfalls müssen wir die ROBO-Klasse verwenden, um die Eingabeaufforderung zu akzeptieren/zu löschen. –

0

Nach meinem Verständnis, diese Pop-ups nicht javascripts one.So Selen wird nicht damit umgehen. Das selbe irgendwie, Authentifizierung Popup auch dort, die wir über einen Hack wie http://username:[email protected] automatisieren, hier geben Benutzername und Passwort in URL selbst. In Ihrem Fall, wie Praveen erwähnte, müssen Sie ein Browser-Profil (FF oder Chrome) erstellen. In Chrome kann das Profil über die gewünschten Optionen oder die Optionen für Chrome-Optionen erstellt werden.

1

Bitte Folgen Sie folgenden Schritte aus:

Schritt 1:

// Erstellen Sie eine Instanz von ChromeOptions Klasse

ChromeOptions options = new ChromeOptions(); 

Schritt 2:

// Fügen Sie chrome switch hinzu, um n zu deaktivieren otifizierung - "--disable-Benachrichtigungen"

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

Schritt 3:

// Set Pfad für Fahrer exe

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

Schritt 4:

// Übergeben Sie die ChromeOptions-Instanz an ChromeDriver Construct oder

WebDriver driver =new ChromeDriver(options); 
+1

user2085714 fragte, wie Benachrichtigungen aktiviert, nicht deaktiviert werden können. –

0

können Sie unter Code verwenden, damit Chrom-Benachrichtigungen senden:

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); 

Es perfekt funktioniert für mich. Lass es mich wissen, wenn es nicht für dich funktioniert. Prost !!

0
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");