Селеновая сетка: org.openqa.selenium.WebDriverException: сеанс [нулевой] недоступен и не входит в число последних 1000 завершенных сеансов - PullRequest
0 голосов
/ 28 апреля 2018

Я получаю эту ошибку при выполнении сетки селена и TestNG. Я хотел бы открыть google.com в браузере и проверить его название.

Это из-за тайм-аута?

Ошибка:

org.openqa.selenium.WebDriverException: Session [null] not available and is not among the last 1000 terminated sessions.
Active sessions are[ext. key c5de26ad-7758-467f-9b5f-be9fe7f1da30, ext. key dd1e9723-f331-4e1f-b86f-27ffa248042f, ext. key 59cbc57a-00a1-47e4-b8ef-8e3d9dab0f6e, ext. key 460c13e4-4503-488c-a1d2-18ee30c25346]
Command duration or timeout: 11 milliseconds

Пример кода

browser.java

public class InvokeRemoteWebDriver {

public static RemoteWebDriver getDriver(String browser) throws MalformedURLException {
    return new RemoteWebDriver(new URL("http://192.168.1.7:4444/wd/hub"), getBrowserCapabilities(browser));

    //http://10.223.161.96:4444/wd/hub
}

private static DesiredCapabilities getBrowserCapabilities(String browserType) {
    switch (browserType) {
    case "firefox":
        System.out.println("Opening firefox driver");
        return DesiredCapabilities.firefox();
    case "chrome":
        System.out.println("Opening chrome driver");
        return DesiredCapabilities.chrome();
    case "IE":
        System.out.println("Opening IE driver");
        return DesiredCapabilities.internetExplorer();
    default:
        System.out.println("browser : " + browserType + " is invalid, Launching Firefox as browser of choice..");
        return DesiredCapabilities.firefox();
    }
}

}

TestClass

public class TestClass extends InvokeRemoteWebDriver{

//public static RemoteWebDriver driver;
public static RemoteWebDriver driver = null;
public static String appURL = "http://www.google.com";


@BeforeMethod
@Parameters({ "browser" })
public void setUp(String browser) throws MalformedURLException {
    System.out.println("Setting up browser driver");
    driver = InvokeRemoteWebDriver.getDriver(browser);
    //driver.manage().window().maximize();
}

@Test
public void testDIPPageTitle()  {
    try {

    System.out.println("testDIPPageTitle");
    driver.navigate().to(appURL);
    Thread.sleep(5000);
    String strPageTitle = driver.getTitle();

    Assert.assertTrue(strPageTitle.equalsIgnoreCase("yahoo"), "Page title doesn't match");
    }
    catch(Exception e) {
        System.out.println(e);
    }
}

@AfterMethod
public void tearDown() {

    try {
    if(driver!=null) {
        Thread.sleep(7000);
        driver.close();
        System.out.println("Closing browser");
        driver.quit();
    }
    else{
        System.out.println("Driver is null at AfterMethod");
    }
    }
    catch(Exception e) {
        System.out.println(e);
    }
    }

}

TestNG.xml

<test name="Test Page title">
<parameter name="browser" value="firefox"/>
    <classes>
        <class name="com.here.dip.test.DIPTestSuite.checkPageTitle">

        <methods>            
            <include name="testDIPPageTitle"></include>
        </methods>

        </class>

    </classes>
</test>

1 Ответ

0 голосов
/ 02 мая 2018

Вы использовали установленное системное свойство? см. ниже.

System.setProperty("webdriver.gecko.driver", "path to driver\\geckodriver.exe");
...