2016-02-07 5 views

risposta

13

È possibile utilizzare il codice qui sotto per conoscere il nome del browser, la versione del sistema operativo e dettagli: -

Capabilities cap = ((RemoteWebDriver) driver).getCapabilities(); 
    String browserName = cap.getBrowserName().toLowerCase(); 
    System.out.println(browserName); 
    String os = cap.getPlatform().toString(); 
    System.out.println(os); 
    String v = cap.getVersion().toString(); 
    System.out.println(v); 

pacchetti è necessario importare

import org.openqa.selenium.Capabilities; 
import org.openqa.selenium.remote.RemoteWebDriver; 

Spero che vi aiuterà :)

+0

Se l'OP aveva (uno o più) istanze 'driver', perché avrebbero bisogno del codice per elaborare il nome in modo che * solo allora * potessero accenderlo? In primo luogo, da dove verrà l'istanza? L'OP –

+0

può utilizzare questo codice sui test in cui deve conoscere la versione e il browser. OP può cambiare il nome dell'istanza del driver. Ho appena risposto qualunque OP ha chiesto. –

+0

Questo non ha senso per me - ma è la scelta di OP. –

2

Sei il tester, quindi sta a voi di scrivere codice/script per esplicitamente prova ciascuna delle varie combinazioni/versione del browser e le loro varie sfumature e sottigliezze (pur cercando di riutilizzare il più logica, come si può , minimizzare la duplicazione ecc.)

La natura di WebDriver è che si, il tester, stanno guidando, non il browser. Non cercare di rilevare le cose.

Quindi, dato che si ha un comportamento diverso per IE e per Chrome, è necessario creare esplicitamente un'istanza WebDriver per ogni (in diversi @Test s) e impostare i dati necessari (similmente proprietà, Capabilities etc.) a seconda dei casi.

Condividere con tutti i codici di ricerca comuni tra i test, ma fino a quando i test non saranno robusti e funzionanti, non dovresti provare a rifattarli.

+1

Mentre si dispone di un punto, IMHO ci sono casi in cui è meglio se i test si adattano automaticamente ai diversi browser. Ad esempio: i test vengono spesso eseguiti (semi) manualmente su browser diversi; o un browser richiede un aggiramento per un bug Selenium quando si interagisce con determinati elementi. In questi casi non vuoi test separati, vuoi un test che funzioni su tutti i browser. – sleske

Problemi correlati