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

时间:2015-12-22 02:25:42

标签: java selenium

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

<select name="selectPeriod">
    <option value="201511">Nov 2015</option>
    <option value="201510">Oct 2015</option>
    <option value="201509">Sept 2015</option>

使用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错误,我假设该错误指的是我的代码的String ValDate = dropdown.getFirstSelectedOption().getAttribute("ValDate")部分没有填充实际值。

我在过去几天才开始使用Java和Selenium,其中很多都是试错。什么是最好的解决方法?

1 个答案:

答案 0 :(得分:2)

option值没有ValDate属性 - 您可能希望获得value属性。替换:

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

使用:

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