Невозможно запустить тесты на селен с помощью testng, пока тест проходит успешно, если я запускаю тесты один за другим

Я написал код селена для тестирования веб-приложения с помощью Testng + webdriver. У меня есть хаб и один узел, на котором я запускаю firefox + chrome, и планшет Android, на котором я запускаю тесты для Android.

Я могу запускать тесты Android один за другим, но когда я запускаю как часть пакета testng, я сталкиваюсь со следующей проблемой:

браузер Android не закрывается после каждого теста, хотя я вызываю driver.quit () в аннотации @aftertest.

Вот в одном из моих тестов:

public class LanguageCheckEN {

WebDriver driverEN, driverFR;
String BaseURL, winURL, TestURL, andURL;

@BeforeTest
@Parameters({ "browser" })
public void setup(String browser) throws IOException

{
    File file = new File("config.properties");
    FileInputStream fileInput = new FileInputStream(file);
    Properties properties = new Properties();
    properties.load(fileInput);
    fileInput.close();

    TestURL = properties.getProperty("AppURL");
    BaseURL = properties.getProperty("HubURL");
    winURL = properties.getProperty("WinURL");
    andURL = properties.getProperty("AndURL");

    DesiredCapabilities capability = null;

    if (browser.equalsIgnoreCase("firefox")) {
        System.out.println("firefox");
        capability = DesiredCapabilities.firefox();
        capability.setBrowserName("firefox");
        capability.setPlatform(Platform.WINDOWS);
        // capability.setVersion("");
        driverEN = new RemoteWebDriver(new URL(winURL), capability);
    }

    if (browser.equalsIgnoreCase("chrome")) {
        System.out.println("chrome");
        capability = DesiredCapabilities.chrome();
        capability.setBrowserName("chrome");
        capability.setPlatform(Platform.WINDOWS);
        driverEN = new RemoteWebDriver(new URL(winURL), capability);

        // capability.setVersion("");

    }

    if (browser.equalsIgnoreCase("android")) {
        System.out.println("android");
        capability = DesiredCapabilities.android();
        capability.setBrowserName("android");
        capability.setPlatform(Platform.ANDROID);
        driverEN = new RemoteWebDriver(new URL(andURL), capability);

        // capability.setVersion("");

    }

}

@Test
private void checkLanguageEN() {

    driverEN.get(TestURL);
    WebElement input1 = driverEN
            .findElement(By.id("login_form_user_input"));
    input1.sendKeys("guest");
    WebElement input2 = driverEN.findElement(By
            .id("login_form_password_input"));
    input2.sendKeys("guest");
    WebElement btn = driverEN
            .findElement(By.id("login_form_signin_button"));
    btn.click();
    WebElement img = driverEN.findElement(By.id("header_language_button"));
    String lng = img.getText();
    if (lng.equals("en"))

    {

        WebDriverWait wait = new WebDriverWait(driverEN, 20);
        wait.until(ExpectedConditions.visibilityOfElementLocated(By
                .linkText("Calendar Search")));

    }

    else

    {
        img.click();
        WebDriverWait wait = new WebDriverWait(driverEN, 20);
        wait.until(ExpectedConditions.visibilityOfElementLocated(By
                .linkText("Calendar Search")));
    }

}

@AfterTest
private void quitTest() {
    driverEN.close();
}

public void aftertest()

{
    quitTest();
}

}

Вот и мой файл testng.xml:

<?xml version="1.0" encoding="UTF-8"?>
   <!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd" >
       <suite name="Dollar Universe Explorer E2E Testing" thread-count="3" parallel="tests" >
      <test name="Language English Chrome">
    <parameter name="browser" value="chrome"  />
    <classes>
        <class name="basicWebElements.LanguageCheckEN" />
    </classes>
     </test>
     <test name="Language English firefox">
    <parameter name="browser" value="firefox"  />
    <classes>
        <class name="basicWebElements.LanguageCheckEN" />
    </classes>
    </test>
    <test name="Language English android">
    <parameter name="browser" value="android"  />
    <classes>
        <class name="basicWebElements.LanguageCheckEN" />
    </classes>
   </test>
</suite>

Из-за этой проблемы, когда я запускаю весь пакет, я получаю эту ошибку:

org.openqa.selenium.remote.UnreachableBrowserException: ошибка связи с удаленным браузером. Возможно, он умер.

Спасибо за вашу помощь.


person Ziwdigforbugs    schedule 05.12.2013    source источник


Ответы (1)


Вот ответ:

Android now whinges when you destroy an activity that has view that you

не отключился от него

WebView webview = (WebView) findViewById(R.id.webview);
    if (webview != null) 
      {
        webview.removeAllViews();
        webview.destroy();
      }
WebView rssWebView = (WebView) findViewById(R.id.rssWebView);
   if (rssWebView != null)
      {
        rssWebView.removeAllViews();
        rssWebView.destroy();
       }

необходимо в onDestroy, чтобы он перестал жаловаться

person Ziwdigforbugs    schedule 12.12.2013