0
我想創建一個接受字符串變量的方法'2018年4月1日'。該字符串將被拆分,並且日期'成分'將用於在選取器See the picker image中選擇日期。我已經涵蓋了選擇日期和點擊箭頭來改變'月份 - 年份'對。我也知道如何達到用戶插入的年份,但我不確定如何選擇當年達到的正確月份。下面是我到目前爲止的代碼。如何使用Selenium Webriver處理保存在同一個html標記中的月份和年份的日期選擇器?
public void pickTheDate() {
String date = "10 April 2018";
String[] dateElements = date.split(" ");
WebElement nextMonth = driver.findElement(By.xpath("somexpath"));
WebElement previousMonth = driver.findElement(By.xpath("somexpath1"));
String dayFromUserInput = dateElements[0];
String monthFromUserInput = dateElements[1];
String yearFromUserInput = dateElements[2];
WebDriverWait wait = new WebDriverWait(driver, 10);
WebElement datePickerHeader= wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("somexpath")));
String textFromDatePickerHeader = datePickerHeader.getText();
讓我們假設在日期選取器標題中的日期是「2017年十月」
String[] dateElementsFromDatePickerHeader = textFromDatePickerHeader.split(" ");
int yearDiff = Integer.parseInt(yearFromUserInput) - Integer.parseInt(dateElementsFromDatePickerHeader[1]);
if (yearDiff != 0) {
//moving to next year
if (yearDiff > 0) {
for (int i = 0; i < yearDiff; i++) {
nextMonth.click();
}
在這一點上,我知道我到達月份是「2018一月」
}
//moving to previous year
else if (yearDiff < 0) {
for (int i = 0; i < (yearDiff * (-1)); i++) {
previousMonth.click();
}
}
}
}
如果我想在2016年內搜索一個日期,我知道第一個遇到的月份是「2016年12月」。 請告訴我如何將合適的導航邏輯合併到用戶插入的月份。提前致謝。