Не могу запустить в одном вебдрайвере несколько тестов (((

java
selenium
testng
webdriver
Теги: #<Tag:0x00007fedb73eba78> #<Tag:0x00007fedb73eb208> #<Tag:0x00007fedb73eb0c8> #<Tag:0x00007fedb73eaf88>

(Maksim Serbichenko) #1

Не получается запустить три теста в одном вебдрайвере. Приходится в каждый тест включать вебдрайвер и тем самым открываются поочередно 3 штуки. Вот код, что и где надо прописать чтоб было мне счастье)))) заранее спасибо большое ))))

package qrupload;


import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;

import java.util.concurrent.TimeUnit;

/**
 * Created by Maksim on 14.01.2017.
 */
public class QuickUpload {
    
        @Test
        public void navigateToMaximIxlooWebSite1 () {

            setChromeDriver();
            WebDriver driver = new ChromeDriver();
            driver.manage().window().maximize();
            driver.get("http://maxim.ixloo.com");

            WebElement button = driver.findElements(By.cssSelector(".panel-collapse.collapse.in")).get(0);
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        }

        @Test
        public void navigateToMaximIxlooWebSite2 ()
        {
            setChromeDriver();
            WebDriver driver = new ChromeDriver();
            driver.manage().window().maximize();
            driver.get("http://maxim.ixloo.com");

            WebElement button = driver.findElements(By.cssSelector(".btn.btn-block.btn-lg.btn-default")).get(0);
            button.click();
            driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
        }

        @Test
        public void navigateToMaximIxlooWebSite3 ()
        {
            setChromeDriver();
            WebDriver driver = new ChromeDriver();
            driver.manage().window().maximize();
            driver.get("http://maxim.ixloo.com");

            WebElement button = driver.findElements(By.cssSelector(".btn.btn-block.btn-lg.btn-default")).get(1);
            button.click();
            driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        }

    private static void setChromeDriver() {
        String osName = System.getProperty("os.name").toLowerCase();
        StringBuffer chromeBinaryPath = new StringBuffer(
                "src/drivers/");

        if (osName.startsWith("win")) {
            chromeBinaryPath.append("chrome-win/chromedriver.exe");
        } else if (osName.startsWith("lin")) {
            chromeBinaryPath.append("chrome-lin/chromedriver");
        } else if (osName.startsWith("mac")) {
            chromeBinaryPath.append("chrome-mac/chromedriver");
        } else
            throw new RuntimeException("Your OS is invalid for webdriver tests");

        System.setProperty("webdriver.chrome.driver",
                chromeBinaryPath.toString());
    }
}

(You Rooock) #2

Если вы хотите, чтобы 3 теста прошли один за одним, то не нужно тогда в каждом тесте создавать объект драйвера.
Достаточно один раз создать в сетапе и потом убить его с тирдауне.


(Maksim Serbichenko) #5

А есть пример ? просто я новичок пока что и некоторые вещи ещё не понимаю (((


(Yaroslav Pernerovskyy) #6

Надо просто инициализировать драйвер один раз, а не каждый раз в тесте…
И да… почитайте про https://github.com/bonigarcia/webdrivermanager

public class QuickUpload {

private WebDriver driver;

@BeforeClass
public void setup(){
 setChromeDriver();
         driver = new ChromeDriver();
            driver.manage().window().maximize();
            driver.get("http://maxim.ixloo.com");}
....

(You Rooock) #7

Совершенно верно пишет человек выше. Но только нужно не забыть и грохнуть дравйер потом


(Maksim Serbichenko) #8

Спасибо большое )))


(Maksim Serbichenko) #9

Спасибо большое ))