我无法获得当前日期

i cant get current date

我正在为一些网站创建一个自动测试,我正在使用 WebDriver、TestNG 和用 Java 编写的代码。执行步骤时,控制台的每个输出都应显示时间。一周前一切正常,每一步都有不同的时间设置。但是,现在时间还是一样。

09:50:48: ***********start***********
09:50:48: ***********PART 1***********
09:50:48: 1.1 home: OK xxxx
09:50:48: ***********PART 2***********
09:50:48: 2.1 home: OK xxxx
09:50:48: 2.2 home: OK xxxx
09:50:48: 2.3 home: OK URL xxxx
09:50:48: 2.4 home: OK xxxx
09:50:48: ***********PART 3***********
....

我用过这个代码:

Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

System.out.println(ft.format(dNow) + ":" + " xxxx");

谁能告诉我,我怎样才能再次获得每一步的当前时间?

测试代码:

package exDrazby;

import java.text.SimpleDateFormat;
import java.util.concurrent.TimeUnit;
import static org.junit.Assert.*;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import java.util.*;
import java.util.NoSuchElementException;


public class Help {
    private WebDriver driver;
    private String baseUrl;
    private StringBuffer verificationErrors = new StringBuffer();
     Date dNow = new Date( );
     SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");

@BeforeMethod
public void setUp() throws Exception {
    driver = new FirefoxDriver();
    //driver.manage().window().maximize();
    baseUrl = "http://www.labmultis.info";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);

}
@Test
public void testHelpStep1WD() throws Exception {
    System.out.println(" **************************************");
    System.out.println(" * Test projektu: exdrazby.cz –admin verze 3.3s");
    System.out.println(" * Test: HELP verze 1.0");
    System.out.println(" **************************************");
    System.out.println(" ");
    System.out.println(ft.format(dNow) + ":" + " ***********ZAČÁTEK TESTU HELP***********");
    System.out.println(ft.format(dNow) + ":" + " ***********PART 1***********");
    driver.get(baseUrl + "/jpecka.portal-exdrazby/index.php?a=mujucet&aa=resetheslo");
    driver.findElement(By.linkText("Nápověda")).click();
    try {
        assertEquals("Úvod > Nápověda", driver.findElement(By.cssSelector("p.breadcrumb")).getText());
        System.out.println(ft.format(dNow) + ":" + " 1.1 help: OK stránka nápověda dostupná");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 1.1 help: stránku nápověda se nepodařilo zobrazit!!!");
    }
    assertTrue(isElementPresent(By.cssSelector("div.box.box-inner")));
    System.out.println(ft.format(dNow) + ":" + " ***********PART 2***********");
    try {
        assertEquals("Obsah", driver.findElement(By.cssSelector("h3")).getText());
        System.out.println(ft.format(dNow) + ":" + " 2.1 help: OK box s nápovědou vlevo je zobrazen");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 2.1 help: box s nápovědou vlevo je chybí!!!");
    }
    assertTrue(isElementPresent(By.linkText("Registrace na portálu")));
    assertTrue(isElementPresent(By.linkText("Jak splnit podmínky účasti v dražbě")));
    assertTrue(isElementPresent(By.linkText("Jak dražit")));
    assertTrue(isElementPresent(By.linkText("Jak hledat dražby")));
    try {
        assertTrue(isElementPresent(By.linkText("Pojmy")));
        System.out.println(ft.format(dNow) + ":" + " 2.2 help: OK box s nápovědou vlevo obsahuje funkční linky: registrace na portálu, jak splnit podmínky účasti v dražbě, jak dražit, jak hledat dražby a pojmy");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 2.2 help: box s nápovědou vlevo obsahuje chybu, některý z následujích linků není funkční: registrace na portálu, jak splnit podmínky účasti v dražbě, jak dražit, jak hledat dražby a pojmy!!!");
    }
    System.out.println(ft.format(dNow) + ":" + " ***********PART 3***********");
    assertTrue(isElementPresent(By.linkText("Jak se registrovat")));
    assertTrue(isElementPresent(By.linkText("Co je základní registrace")));
    assertTrue(isElementPresent(By.linkText("Registrace dražitele")));
    assertTrue(isElementPresent(By.linkText("Co je registrace ostatních účastníků dražby")));
    driver.findElement(By.xpath("//a[contains(text(),'Co v případě, že se nemůžete  registrovat nebo přihlásit?')]")).click();

    try {
        assertTrue(driver.findElement(By.xpath("/html/body/div[1]/div/section/div/div[2]/ol/h2")).getText().matches("^Co v případě, že se nemůžete registrovat nebo přihlásit[\s\S]$"));
        System.out.println(ft.format(dNow) + ":" + " 3.1 help: OK Nápověda > 1. registrace na portálu obsahuje funkční následující linky: jak se registrovat, co je základní registrace, co je registrace dražitele, Co je registrace ostatních účastníků dražby, Co v případě, že se nemůžete registrovat nebo přihlásit.");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 3.1 help: Nápověda > 1. registrace na portálu obsahuje chybu, některý z následujích linků není funkční: jak se registrovat, co je základní registrace, co je registrace dražitele, Co je registrace ostatních účastníků dražby, Co v případě, že se nemůžete registrovat nebo přihlásit.!!!");
    }
    driver.findElement(By.linkText("Pojmy")).click();
    try {
        assertEquals("Pojmy", driver.findElement(By.xpath("//li[5]/div")).getText());
    } catch (Error e) {
        verificationErrors.append(e.toString());
    }
    assertTrue(isElementPresent(By.linkText("Jak prokázat totožnost")));
    assertTrue(isElementPresent(By.linkText("Ověření totožnosti u exekutora")));
    assertTrue(isElementPresent(By.linkText("Doložení ověřené totožnosti doklady zaslanými poštou")));
    assertTrue(isElementPresent(By.linkText("Doložení ověřené totožnosti kvalifikovaným certifikátem")));
    assertTrue(isElementPresent(By.linkText("Doložení ověřené totožnosti datovou schránkou")));
    assertTrue(isElementPresent(By.linkText("Doložení ověřené totožnosti doklady konvertovanými na poště")));
    assertTrue(isElementPresent(By.linkText("Jak složit dražební jistotu")));
    assertTrue(isElementPresent(By.linkText("Práce s konvertovaným dokladem v části Můj účet")));
    driver.findElement(By.xpath("(//a[contains(text(),'Jak splnit podmínky účasti v dražbě')])[2]")).click();
    try {
        assertEquals("Jak splnit podmínky účasti v dražbě", driver.findElement(By.cssSelector("h2")).getText());
        System.out.println(ft.format(dNow) + ":" + " 3.2 help: OK Nápověda > 2. Jak splnit podmínky účasti v dražbě obsahuje funkční následující linky:Jak splnit podmínky účasti v dražbě, Jak prokázat totožnost, ověření totožnosti u exekutora, Doložení ověřené totožnosti doklady zaslanými poštou, Doložení ověřené totožnosti kvalifikovaným certifikátem, Doložení ověřené totožnosti datovou schránkou, Doložení ověřené totožnosti doklady konvertovanými na poště, Jak složit dražební jistotu, Práce s konvertovaným dokladem v části Můj účet");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 3.2 help: Nápověda > 2. Jak splnit podmínky účasti v dražbě obsahuje chybu, někter z následujících linků není funkční:Jak splnit podmínky účasti v dražbě, Jak prokázat totožnost, ověření totožnosti u exekutora, Doložení ověřené totožnosti doklady zaslanými poštou, Doložení ověřené totožnosti kvalifikovaným certifikátem, Doložení ověřené totožnosti datovou schránkou, Doložení ověřené totožnosti doklady konvertovanými na poště, Jak složit dražební jistotu, Práce s konvertovaným dokladem v části Můj účet!!!");
    }
    try {
        assertTrue(isElementPresent(By.cssSelector("img")));
    } catch (Error e) {
        verificationErrors.append(e.toString());
    }
    driver.findElement(By.cssSelector("a[title=\"Nápovéda\"]")).click();
    assertTrue(isElementPresent(By.linkText("Kdy začne dražba")));
    assertTrue(isElementPresent(By.linkText("Jak přihazovat")));
    assertTrue(isElementPresent(By.linkText("Kdy dražba končí")));
    driver.findElement(By.linkText("Jak podat námitky")).click();
    try {
        assertEquals("Jak podat námitky", driver.findElement(By.cssSelector("h2")).getText());
        System.out.println(ft.format(dNow) + ":" + " 3.3 help: OK Nápověda > 3. Jak dražit obsahuje funkční následující linky: Kdy začne dražba, jak přihazovat, kdy dražba končí, jak podat námitky");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 3.3 help: Nápověda > 3. Jak dražit obsahuje chybu, některý z následujících linků je nefunkční: Kdy začne dražba, jak přihazovat, kdy dražba končí, jak podat námitky!!!");
    }
    driver.findElement(By.cssSelector("a[title=\"Nápovéda\"]")).click();
    assertTrue(isElementPresent(By.linkText("Jak hledat dražbu")));
    driver.findElement(By.linkText("Jak nastavit emailové upozornění")).click();
    try {
        assertEquals("Jak nastavit emailové upozornění", driver.findElement(By.cssSelector("h2")).getText());
        System.out.println(ft.format(dNow) + ":" + " 3.4 help: OK Nápověda > 4. Jak hledat dražby obsahuje funkční následující linky: Jak hledat dražbu, jak nastavit emailové upozornění");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 3.4 help: Nápověda > 4. Jak hledat dražby obsahuje chybu,  některý z následujících linků není funkční: Jak hledat dražbu, jak nastavit emailové upozornění!!!");
    }
    driver.findElement(By.cssSelector("a[title=\"Nápovéda\"]")).click();
    assertTrue(isElementPresent(By.linkText("Předkupní právo")));
    assertTrue(isElementPresent(By.linkText("Příhoz")));
    assertTrue(isElementPresent(By.linkText("Podání")));
    assertTrue(isElementPresent(By.linkText("První příhoz")));
    assertTrue(isElementPresent(By.linkText("Povinný")));
    assertTrue(isElementPresent(By.linkText("Oprávněný")));
    assertTrue(isElementPresent(By.linkText("Dražba")));
    assertTrue(isElementPresent(By.linkText("Vydražitel")));
    assertTrue(isElementPresent(By.linkText("Dražební vyhláška")));
    assertTrue(isElementPresent(By.linkText("Dražební jistota")));
    driver.findElement(By.linkText("Nejnižší podání")).click();
    try {
        assertEquals("Nejnižší podání", driver.findElement(By.cssSelector("h2")).getText());
        System.out.println(ft.format(dNow) + ":" + " 3.5 help: OK Nápověda > 5. Pojmy obsahuje funkční následující linky: Předkupní právo, příhoz, podání, první příhoz, povinný, opravněný, dražba, vydražitel, dražební vyhláška, dražební jistota, nejnižší podání");
    } catch (Error e) {
        verificationErrors.append(e.toString());
        System.out.println(ft.format(dNow) + ":" + " 3.5 help: Nápověda > 5. Pojmy obsahuje chybu, některý z následujích linků je chybný: Předkupní právo, příhoz, podání, první příhoz, povinný, opravněný, dražba, vydražitel, dražební vyhláška, dražební jistota, nejnižší podání!!!");
    }
}


@AfterMethod
public void tearDown() throws Exception {
    driver.close();
    try
    {
        Thread.sleep(5000);
        driver.quit();
    }
    catch(Exception e)
    {
    }
}
private boolean isElementPresent(By by) {
    try {
        driver.findElement(by);
        return true;
    } catch (NoSuchElementException e) {
        return false;
    }
}

}

代替日期 dNow = new Date( );你应该使用:

java.time.LocalDateTime.now()

它将return当前日期时间。

您可以使用

Calendar.getInstance().getTime()

还有。

您没有创建新的 Date 对象。 而不是

System.out.println(ft.format(dNow) +...)

您必须创建一个新的日期对象

尝试将所有 dNow 对象更改为

System.out.println(ft.format(new Date()) +...)

您没有在 运行 每次测试之前创建新的 Date 对象。

添加

dNow = new Date( ); 

到 setUp 方法。

将您的测试分成不同的测试方法。

您还可以创建一个新方法来执行输出

private void log(final String message) {
    System.out.println(MessageFormat.format("{0} - {1}", ft.format(new Date(), message);
}

并用它代替

System.out.println(ft.format(dNow) + ":" + " ***********ZAČÁTEK TESTU HELP***********");

像这样

log(" ***********ZAČÁTEK TESTU HELP***********");

尝试删除dNow声明语句,并将所有dNow替换为new Date()