2
我有一個包含大量日期的下拉菜單。每個日期都以"yyyymm"
的形式附在其上。我想要做的是取出值屬性中的日期,並將其與當前月份和年份進行比較。該HTML看起來像這樣:在下拉菜單中獲取選項的值並在if語句中使用它
<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,所以這已經是試驗和錯誤。什麼是解決這個問題的最好方法?
您的意思是'.getAttribute( 「值」);'?另外,如果你檢查'dropdown.getFirstSelectedOption()'的值,那它又是什麼?謝謝。 – alecxe
@alecxe呃,我原本沒有,但是一旦我改變它的價值,它解決了我得到錯誤的問題。不幸的是,它看起來好像'If語句'不能正常工作。我從'int month = Calendar.getInstance()。get(Calendar.MONTH)+ 1'中拿出'+ 1'來獲取Nov的月份,但是if語句打印出'Didnt work'。 – Jcmoney1010
@alecxe我發現我的問題與if語句不工作(將兩個'int'年和月與字符串'CurDate'一起添加)。如果你想讓你的評論成爲答案,我會給你複選標記。 – Jcmoney1010