我有一个包含大量日期的下拉菜单。这些日期中的每一个都以"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,其中很多都是试错。什么是最好的解决方法?
答案 0 :(得分:2)
option
值没有ValDate
属性 - 您可能希望获得value
属性。替换:
dropdown.getFirstSelectedOption().getAttribute("ValDate");
使用:
dropdown.getFirstSelectedOption().getAttribute("value");