2017-08-15 1 views
1

J'utilise la grille de sélénium et la version 3.4.0 de sélénium. Je reçois erreur pour la fonction tearDown() (Fermeture du navigateur mais erreur à la fonction), j'ai essayé @After, avant, suite, classe etc annotation à la fonction tearDown(), mais ne fonctionne pas. S'il vous plaît suggérer quelle est mon erreur et comment résoudre.Quit() ne fonctionne pas dans la grille de sélénium 3.4.0 (ThreadLocal)

Classe de base:

public class TestBase { 

//public ThreadLocal<RemoteWebDriver> driver; 
public ThreadLocal<RemoteWebDriver> driver = new ThreadLocal<RemoteWebDriver>(); 

//Do the test setup 
@BeforeMethod 
@Parameters(value="browser") 
public void setupTest (String browser) throws MalformedURLException { 
    //Assign driver to a ThreadLocal 
    //driver = new ThreadLocal<>(); 
    DesiredCapabilities capabilities = new DesiredCapabilities(); 
    if (browser.equals("chrome")) { 
     capabilities.setCapability("browserName", browser); 
     driver.set(new RemoteWebDriver(new URL("http://123.123.0.50:4444/wd/hub"), capabilities)); 

    } else if(browser.equals("internet explorer")){ 
     capabilities.setCapability("browserName", browser); 
     driver.set(new RemoteWebDriver(new URL("http://123.123.0.50:4444/wd/hub"), capabilities)); 
     capabilities.setCapability(InternetExplorerDriver.IE_ENSURE_CLEAN_SESSION, true); 
    } 
    else if(browser.equals("firefox")){ 
     capabilities.setCapability("browserName", browser); 
     driver.set(new RemoteWebDriver(new URL("http://123.123.0.50:4444/wd/hub"), capabilities)); 
    } 
} 

public WebDriver getDriver() { 
    return driver.get(); 
} 

@AfterMethod 
public void tearDown() throws Exception { 
    //getDriver().close(); 
    getDriver().quit(); 
} 
} 

Première Classe:

public class FirstTest extends TestBase { 

@Test 
public void firstTest() throws Exception { 
    System.out.println("First Test Started!"); 
    getDriver().navigate().to("http://www.facebook.com"); 
    System.out.println("First Test's Page title is: " + getDriver().getTitle()); 
    System.out.println("First Test Ended!"); 
} 

@Test 
public void firstTests() throws Exception { 
    System.out.println("First of Second Test Started!"); 
    getDriver().navigate().to("http://www.facebook.com"); 
    System.out.println("First Test's Page title is: " + getDriver().getTitle()); 
    System.out.println("First of Second Test Ended!"); 
} 
} 

TestNG.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite" parallel="tests" thread-count="2"> 

<test name="FFTest"> 
<parameter name="browser" value="firefox" /> 
<classes> 
<class name="parallelGrid.SecondTest" /> 
</classes> 
</test> 
</suite> 

Message d'erreur:

org.openqa.selenium.WebDriverException: quit 
Build info: version: '3.4.0', revision: 'unknown', time: 'unknown' 
+0

S'il vous plaît partager votre trace complète de la pile –

Répondre

1

Je ne sais pas votre URL de nœud que vous utilisez. Essayez ce lien et le hub d'installation, nœud puis essayez votre code, si cela fonctionne, alors vous avez un problème avec l'URL du nœud sinon laissez-nous savoir l'adresse URL de nœud que vous utilisez.

Link for your solution

+0

sans savoir quelle est la raison exacte derrière la question de l'OP, je voudrais comprendre la façon dont est '' codoid's' va visgrid' pour le résoudre? 'visgrid' semble être davantage un outil de gestion de l'environnement de la grille qui vous aide à gérer votre hub et votre noeud. –

+0

@Sachin Cela a fonctionné pour moi. – Selenium