从网页读取日期到Selenium java

从网页读取日期到Selenium java,java,selenium,date,validation,Java,Selenium,Date,Validation,我正在使用Selenium Java,我需要获得以下没有时间的日期格式,作为Selenium Java中的字符串,以验证它是否与发布日期同步。我使用了网站上的getText()方法,将时间和日期分开。除了这个解决方案,还有其他更好的方法吗 您可以使用selenium的getText(),以获取字符串形式的值。 之后,您可以使用Java的DateTimeFormatter,解析此日期,并将其转换为所需的格式 编辑:我添加了更多的解释和更多的代码行 网站上的字符串不包括年份,这是一个小小的挑战。一种

我正在使用Selenium Java,我需要获得以下没有时间的日期格式,作为Selenium Java中的字符串,以验证它是否与发布日期同步。我使用了网站上的getText()方法,将时间和日期分开。除了这个解决方案,还有其他更好的方法吗


您可以使用selenium的
getText()
,以获取字符串形式的值。 之后,您可以使用Java的
DateTimeFormatter
,解析此日期,并将其转换为所需的格式
编辑:我添加了更多的解释和更多的代码行

网站上的字符串不包括年份,这是一个小小的挑战。一种简单的处理方法是:

    ZoneId websiteTimeZone = ZoneId.of("America/Lower_Princes");
    DateTimeFormatter formatter
            = DateTimeFormatter.ofPattern("dd-MMM HH:mm", Locale.ENGLISH);

    String stringFromWebsite = "06-Feb 06:37";

    MonthDay today = MonthDay.now(websiteTimeZone);
    System.out.println("Today is             " + today);

    MonthDay date = MonthDay.parse(stringFromWebsite, formatter);
    System.out.println("Date from website is " + date);

    if (date.equals(today)) {
        System.out.println("It’s up to date");
    } else {
        System.out.println("It’s *NOT* up to date");
    }
当我今天(3月12日)跑步时,我看到的片段是:

A
MonthDay
是没有年份的月份和月份中的某一天。使用这门课的好处是我们不需要担心自己的年龄。一个可能的缺点是我们不能比较两个这样的对象来确定哪一个在另一个之前或之后。这样的比较需要知道每个年份

我们需要知道网站使用的时区,因为地球上任何地方的日期都不一样。请插入正确的一个,我把美国/低_王子

我正在使用格式模式
dd MMM HH:mm
DateTimeFormatter将网站中的字符串解析为
MonthDay
,因为小写字母
d
表示月日,
M
表示月日,
H
表示小时,小写字母
M
表示小时。由于我正在解析一个
MonthDay
,因此时间被忽略(只有它的语法仍然处于选中状态)。在印刷本中,
--03-12
表示3月12日和
--02-06
同样表示2月6日(网站上的日期)。由于它们不同,代码打印出网站不是最新的

更高级的解决方案可能会检查日期是在今天的日期之前还是之后几天,和/或同时查看时间

链接

  • 解释如何使用java.time
  • 堆栈溢出问题

谢谢你的回答。我运行了代码,如果我也输入了其他日期,它会打印“它不是最新的”你能解释一下你的代码是如何工作的吗?我在代码中添加了更多的解释和一些打印语句,这样你就可以更好地跟踪发生的事情(我希望)@Purushoth
Today is             --03-12
Date from website is --02-06
It’s *NOT* up to date