在下拉列表中获取选项的值并在if语句中使用它

我有一个下拉菜单,有一堆日期。 这些日期中的每一个都以"yyyymm"的forms附加到其上。 我想要做的是获取value属性中的日期,并将其与当前月份和年份进行比较。 HTML看起来像这样:

  Nov 2015 Oct 2015 Sept 2015 

使用IF语句,我想查看第一个选项的值,并将其与当前日期进行比较。 我只需要检查第一个选项,而不是在整个下拉菜单中循环。 我目前的设置如下:

 int month=Calendar.getInstance().get(Calendar.MONTH)+1; int year =Calendar.getInstance().get(Calendar.YEAR); String CurDate = String.valueOf(year+month); Select dropdown = new Select(driver.findElement(By.name("selectedPeriod"))); dropdown.selectByIndex(0); String ValDate = dropdown.getFirstSelectedOption().getAttribute("ValDate"); if(valDate.equals(CurDate)){ System.out.println("Worked: "); } else {System.out.println("Didnt work: "); } 

当前代码Exception in thread "main" java.lang.NullPointerException错误中提供和Exception in thread "main" java.lang.NullPointerException ,我假设它是指我的代码的String ValDate = dropdown.getFirstSelectedOption().getAttribute("ValDate")部分未被填充实际价值。

我在过去几天才开始使用Java和Selenium ,其中很多都是试错。 怎样才能解决这个问题?

option值没有ValDate属性 – 您可能意味着获取value属性。 更换:

 dropdown.getFirstSelectedOption().getAttribute("ValDate"); 

有:

 dropdown.getFirstSelectedOption().getAttribute("value");