基于月份文本的自动化日期选择器
Automate date-picker based on month text
我正在尝试在页面上自动执行日期选择器,我想点击 previous/next 按钮,直到到达日历中的所需月份。但是按钮不会点击,只有当它点击并且测试用例通过时才不会再继续。当前月份是 9 月,它单击并转到 8 月,测试用例通过而无需进一步单击,假设我想单击到 1 月它不会发生
@FindBy(css=".ui-datepicker-month") //month displayed in date-picker
WebElement labelCalendarMonth;
@FindBy(id="txtStartDate_calendarButton") // button to open the date-picker
WebElement searchStartDateButton;
@FindBy(xpath="//a[@title='Prev']") // previous button in date-picker
WebElement calendarSearchStartDatePreviousBtn;
public void selectStartMonth(WebElement ele, String value) {
if(!labelCalendarMonth.getText().equals(value))
{
ele.click();
}
}
public void clickCalendarSearchStartDatePreviousBtn() throws InterruptedException
{
selectStartMonth(calendarSearchStartDatePreviousBtn, "January");
}
@Test()
public void testAddResourceSchedule() throws InterruptedException
{
resourceSchedulePage.clickCalendarSearchStartDatePreviousBtn();
}
我曾与 https://www.booking.com/
合作过,他们确实有日期选择器,所以只是想提醒一下我们如何处理这种情况,我们必须点击直到一定时间,例如:直到对于您的 Jan,我们可以执行以下操作:-
很明显我们必须 infinite while loop.
while(true){
if(driver.findElement(By.xpath("month xpath which you wanna selct ")).getText().equalsIgnoreCase(month) && driver.findElement(By.xpath("year xpath that you wanna select")).getText().equalsIgnoreCase(year)) {
break;
}
else {
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("next botton xpath here, which is on date picker."))).click();
Thread.sleep(500);
}
}
基本上,问题是您需要在 运行 这段代码之前的 string format.
中提前定义 month
和 year
。
我在这里 写了一个很好的解决方案,我一直点击到 Nov-2022
的结尾
我正在尝试在页面上自动执行日期选择器,我想点击 previous/next 按钮,直到到达日历中的所需月份。但是按钮不会点击,只有当它点击并且测试用例通过时才不会再继续。当前月份是 9 月,它单击并转到 8 月,测试用例通过而无需进一步单击,假设我想单击到 1 月它不会发生
@FindBy(css=".ui-datepicker-month") //month displayed in date-picker
WebElement labelCalendarMonth;
@FindBy(id="txtStartDate_calendarButton") // button to open the date-picker
WebElement searchStartDateButton;
@FindBy(xpath="//a[@title='Prev']") // previous button in date-picker
WebElement calendarSearchStartDatePreviousBtn;
public void selectStartMonth(WebElement ele, String value) {
if(!labelCalendarMonth.getText().equals(value))
{
ele.click();
}
}
public void clickCalendarSearchStartDatePreviousBtn() throws InterruptedException
{
selectStartMonth(calendarSearchStartDatePreviousBtn, "January");
}
@Test()
public void testAddResourceSchedule() throws InterruptedException
{
resourceSchedulePage.clickCalendarSearchStartDatePreviousBtn();
}
我曾与 https://www.booking.com/
合作过,他们确实有日期选择器,所以只是想提醒一下我们如何处理这种情况,我们必须点击直到一定时间,例如:直到对于您的 Jan,我们可以执行以下操作:-
很明显我们必须 infinite while loop.
while(true){
if(driver.findElement(By.xpath("month xpath which you wanna selct ")).getText().equalsIgnoreCase(month) && driver.findElement(By.xpath("year xpath that you wanna select")).getText().equalsIgnoreCase(year)) {
break;
}
else {
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("next botton xpath here, which is on date picker."))).click();
Thread.sleep(500);
}
}
基本上,问题是您需要在 运行 这段代码之前的 string format.
中提前定义 month
和 year
。
我在这里 Nov-2022