java - 如何运行一个在执行 main 方法后继续工作的测试类

标签 java selenium

我有一个测试类,其中缅因州执行代码,在其中我获取必须在测试中使用的测试数据,如何使缅因州方法首先运行,然后运行类中的其余代码。如果我通过 testng.xml 运行该类,那么 main 方法根本就不会启动。如果我运行 main,其余代码也不会启动

package testClassPackage;

public class testWeatherChrome {
    public static String parcedData;

    public static void main(String[] args) throws IOException {

        String sURL = "http://api.openweathermap.org/data/2.5/forecast/?q=Odessa,ua&APPID=518a64dd48106aa542464d3bd94d12ce"; //just a string


        URL url = new URL(sURL);
        URLConnection request = url.openConnection();
        request.connect();


        JsonParser jp = new JsonParser();
        JsonElement root = jp.parse(new InputStreamReader((InputStream) request.getContent()));
        JsonObject rootobj = root.getAsJsonObject();
        JsonArray message = rootobj.get("list").getAsJsonArray();
        Map<String, String> data = new TreeMap<>();

        for (JsonElement lst : message) {
            JsonObject lstObject = lst.getAsJsonObject();
            JsonObject el = (JsonObject) lstObject.get("main");
//            System.out.println(lstObject.get("dt_txt").getAsString() + " " + el.get("temp").getAsString());
            if (lstObject.get("dt_txt").getAsString().contains(" 12")) {

                data.put("Дата " + lstObject.get("dt_txt").getAsString(), "Прогноз День:" + el.get("temp").getAsString());
            } else if (lstObject.get("dt_txt").getAsString().contains(" 21")) {
                data.put("Дата " + lstObject.get("dt_txt").getAsString(), "Прогноз Ночь:" + el.get("temp").getAsString());
            }

        }
        Gson gson = new Gson();
        Type gsonType = new TypeToken<TreeMap>() {
        }.getType();
        String gsonData = gson.toJson(data, gsonType);
        parcedData = gsonData;
        System.out.println("main");

    }
        @BeforeClass
        public void setUp () {
            initDriver.getInstance("chrome");
        }

    @Test
    public void getTitle() throws InterruptedException {
        String URL ="https://accounts.google.com/signin/v2/identifier?hl=ru&passive=true&continue=https%3A%2F%2Fwww.google.com%2F%3Fgws_rd%3Dssl&flowName=GlifWebSignIn&flowEntry=ServiceLogin";
        initDriver.driver.get(URL);
        initDriver.driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
        initDriver.driver.findElement(By.xpath("//input[@id=\"identifierId\"]")).sendKeys("lesha.test111@gmail.com");
        initDriver.driver.findElement(By.xpath("//span[text()=\"Далее\"]")).click();
        WebDriverWait wait = new WebDriverWait(initDriver.driver, 10);
        WebElement passwordElement = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@type=\"password\"]")));
//        initDriver.driver.findElement(By.xpath("//input[@type=\"password\"]")).sendKeys("Leshasugurov222");
        passwordElement.sendKeys("Leshasugurov222");
        initDriver.driver.findElement(By.xpath("//span[text()=\"Далее\"]")).click();
        initDriver.driver.findElement(By.xpath("//a[text()=\"Почта\"]")).click();
        initDriver.driver.findElement(By.xpath("//div[text()=\"Написать\"]")).click();
        initDriver.driver.findElement(By.xpath("//textarea[@aria-label=\"Кому\"]")).sendKeys("leshaa.test333@gmail.com");
        initDriver.driver.findElement(By.xpath("//input[@aria-label=\"Тема\"]")).sendKeys("Погода на неделю для Одессы");
        System.out.println(WeatherParse.parcedData);
//        initDriver.driver.findElement(By.xpath("//div[@aria-label=\"Тело письма\"]")).sendKeys(WeatherParse.parcedData);


    }


//    @AfterClass
//    public void close() {
//        initDriver.quit();
//    }

}

最佳答案

如果您运行testng.xml,很明显,testng.xml 文件不会遵循 main 方法(因为它本来就不应该如此)。

解决方案:

1)使用@BeforeSuite注释并执行您的优先任务。

2) 您还可以使用 testng.xml 文件并相应地定义测试序列。

关于java - 如何运行一个在执行 main 方法后继续工作的测试类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57869445/

相关文章:

包内的 Java 接口(interface)和类组织约定

java - 如果我们在句子中使用带有位置编号的单词,如何定义可能的组合

Selenium 将 Xpath(ID 和 Class)转换为 CSS 选择器

java - 线程 "main"org.openqa.selenium.WebDriverException : unknown error: Chrome failed to start: exited normally 中出现异常

java - 编译 AWS Elastic Beanstalk 演示抛出异常没有可用的 Java 编译器

java - Sqlite 按距离现在最近的时间排序

java - Firefox selenium webdriver 给出 "Insecure Connection"

java - 需要帮助使用 java 将文件从本地计算机复制到远程计算机

java - 如何获取列表中的所有项目

java - org.openqa.selenium.WebDriverException : connection refused while using Selenium Java and webdriver (linux headless with Xvfb)