Невозможно программно запустить Docker в Mac OS с помощью Java TestNG Selenium Grid - PullRequest
2 голосов
/ 21 октября 2019

Потратили более 8 часов, пытаясь решить эту проблему с нулевым успехом. Я хочу запускать и останавливать рабочий стол докера программно. Я знаю, что это возможно как пользователь окна , но я не могу найти, как это сделать с операционной системой Mac (я проверил) . Я нашел что-то, что могло бы работать, но там я являюсь элементами Java-кода с Selenium Grid, я не понимаю. С моей стороны, как новичка, это может быть невежеством, но я просто хочу это исправить, так как уверен, что все просто.

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

Я новичок в Selenium Grid с Java, поэтому любые отзывы будут оценены.

это кусок кода, с которым у меня проблема.

Кажется, user.dir означает какой-то каталог пользователя? Но о каком каталоге они конкретно говорят? Понятия не имею.

Сначала я покажу фрагмент, а затем полный код.

public class TestBase {

     private static final String SETUP_DOCKER_SCRIPT_FILE = System.getProperty("user.dir") + "/dockerup.sh";
        private static final String SCALE_CHROME_FILE = System.getProperty("user.dir") + "/docker_scale.sh";
        private static final String TEAR_DOWN_SCRIPT_FILE = System.getProperty("user.dir") + "/dockerdown.sh";
        private static final String EXPECTED_MESSAGE = "The node is registered to the hub and ready to use";
        public static ThreadLocal<RemoteWebDriver> remoteWebDriver = new ThreadLocal<RemoteWebDriver>();

Вот полный код:

package remoteTesting.dockerValidation1;


import static utils.StartStopDockerContainer.execute;//this is a imported file from the utils package

import java.net.URL;

import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.BeforeSuite;

public class TestBase {

     private static final String SETUP_DOCKER_SCRIPT_FILE = System.getProperty("user.dir") + "/dockerup.sh";
        private static final String SCALE_CHROME_FILE = System.getProperty("user.dir") + "/docker_scale.sh";
        private static final String TEAR_DOWN_SCRIPT_FILE = System.getProperty("user.dir") + "/dockerdown.sh";
        private static final String EXPECTED_MESSAGE = "The node is registered to the hub and ready to use";
        public static ThreadLocal<RemoteWebDriver> remoteWebDriver = new ThreadLocal<RemoteWebDriver>();

        @BeforeSuite
        public void setUp() {
            execute(SETUP_DOCKER_SCRIPT_FILE, EXPECTED_MESSAGE);
            execute(SCALE_CHROME_FILE, true);
        }

        @BeforeClass
        public void beforeTest() throws Exception {
            URL url = new URL("http://localhost:4444/wd/hub");
            DesiredCapabilities desiredCapabilities = DesiredCapabilities.chrome();
            remoteWebDriver.set(new RemoteWebDriver(url, desiredCapabilities));
        }

        @AfterClass
        public void tearDown() {
            remoteWebDriver.get().close();
        }

        @AfterSuite
        public void afterTest() {
            execute(TEAR_DOWN_SCRIPT_FILE, true);
        }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...