2017-08-08 4 views
0

Détails:Comment exécuter des cas de test sur Safari sur Sélénium Grille avec machine Windows 10 en tant que plaque tournante et la machine MAC comme nœud

Version de Windows: 10, 64 bits

MAC: macOS Sierra 10.12 .5

Safari: 10.1.1

sélénium: 3.4.0

plaque tournante sur la machine en route Windows avec commande ci-dessous et a commencé avec succès

java -jar selenium-server-standalone-3.4.0.jar -role hub -port 4444 

nœud sur la machine MAC Started avec commande ci-dessous et a commencé avec succès

java -jar selenium-server-standalone-3.4.0.jar -role node -nodeConfig mac.json 

contenu mac.json est

{ 
    "capabilities": 
    [ 
    { 
     "browserName": "safari", 
     "maxInstances": 5, 
     "seleniumProtocol": "WebDriver" 
    }, 
    { 
     "browserName": "firefox", 
     "maxInstances": 5, 
     "seleniumProtocol": "WebDriver" 
    }, 
    { 
     "browserName": "chrome", 
     "maxInstances": 5, 
     "seleniumProtocol": "WebDriver" 
    }, 
    { 
     "browserName": "internet explorer", 
     "maxInstances": 1, 
     "seleniumProtocol": "WebDriver" 
    } 
    ], 
    "proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy", 
    "maxSession": 5, 
    "port": 5555, 
    "register": true, 
    "registerCycle": 5000, 
    "hub": "http://192.101.3.23:4444", 
    "nodeStatusCheckTimeout": 5000, 
    "nodePolling": 5000, 
    "role": "node", 
    "unregisterIfStillDownAfter": 60000, 
    "downPollingLimit": 2, 
    "debug": false, 
    "servlets" : [], 
    "withoutServlets": [], 
    "custom": {} 
} 

Le code Java Selenium pour appeler le navigateur est

capability = DesiredCapabilities.safari(); 
capability.setBrowserName("safari"); 
capability.setPlatform(Platform.MAC); 
SafariOptions options = new SafariOptions(); 
options.setUseCleanSession(true); 
capability=DesiredCapabilities.safari(); 
capability.setCapability(SafariOptions.CAPABILITY, options); 
capability.setPlatform(Platform.ANY); 

driver=new RemoteWebDriver(new URL(http://192.101.1.23:5555),capability); 

sur l'exécution de la ligne ci-dessous pour le navigateur Safari

driver=new RemoteWebDriver(new URL(http://192.101.1.23:5555),capability); 

Lancer une exception

java.lang.reflect.InvocationTargetException 

Je suis incapable de procéder à, ai-je raté quelque chose, ce qui ne me permet de aller plus loin, peut-on aider s'il vous plaît.

Mise à jour le code Java Sélénium comme ci-dessous, et fonctionne très bien

capability = DesiredCapabilities.safari(); 
driver=new RemoteWebDriver(new URL(http://192.101.1.23:5555),capability); 

Répondre

1

Mise à jour du code Java comme ci-dessous pour appeler navigateur, et fonctionne très bien

capability = DesiredCapabilities.safari(); 
driver=new RemoteWebDriver(new URL(http://192.101.1.23:5555),capability); 
0

appelez-vous le Mac-nœud directement dans vos tests?

Je ne l'ai pas testé, mais si je comprends bien, vous devez appeler le concentrateur. Et puis le hub gère l'envoi aux nœuds.

Donc, votre appel doit être quelque chose comme:

driver=new RemoteWebDriver(new URL(http://192.101.3.23:4444/wd/hub),capability); 
+0

Merci pour la réponse. Les capacités définies dans mac.json et dans le code Java causent le problème, les capacités supprimées dans le code Java et fonctionnent correctement. – SeJaPy

+0

@Aparna - Vous voudrez peut-être répondre à votre question, puis l'accepter, afin que la question puisse être close. –