【发布时间】:2022-01-23 14:07:47
【问题描述】:
我正在尝试使用 selenium+java 选择一个日期,但它的行为非常奇怪。
除此之外,我得到了 element not found 异常。
我在函数中传递日期
我做错了什么
下面是代码
public class date_automation {
WebDriver driver = null;
@BeforeTest
public void initialise() {
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.manage().window().maximize();
driver.get("https://www.goibibo.com/");
}
@Test
public void test_calendar() throws InterruptedException {
WebElement departure_date = driver.findElement(By.id("departureCalendar"));
departure_date.click();
selectDateInCalendar("23/01/2022");
}
public void selectDateInCalendar(String date) throws InterruptedException {
Date CurrentDate = new Date();
SimpleDateFormat newDateFormat = new SimpleDateFormat("dd/MM/yyyy");
try {
Date expectedDate = newDateFormat.parse(date);
String day = new SimpleDateFormat("dd").format(expectedDate);
String month = new SimpleDateFormat("MMMM").format(expectedDate);
String year = new SimpleDateFormat("yyyy").format(expectedDate);
System.out.println(day + "*****" + month + "*****" + year);
String expectedMonthYear = month + " " + year;
System.out.println(expectedMonthYear);
String displayDate = driver.findElement(By.xpath("//div[@class='DayPicker-Caption']")).getText();
while (true) {
if (expectedMonthYear.equals(displayDate)) {
driver.findElement(By.xpath("//div[text()='" + day + "']")).click();
} else {
driver.findElement(By.xpath("//span[@class='DayPicker-NavButton DayPicker-NavButton--next']"))
.click();
}
}
} catch (ParseException e) {
e.printStackTrace();
}
}
@AfterTest
public void cleanup() {
driver.quit();
}
}
【问题讨论】:
-
您遇到了什么异常以及针对什么代码行?
behaving very weirdly是什么意思? -
它将持续到 2023 年 12 月,并抛出异常 org.openqa.selenium.NoSuchElementException:没有这样的元素:无法找到元素:{"method":"xpath","selector":"/ /span[@class='DayPicker-
-
@ManishB 在您的代码中,您需要将此行
String displayDate = driver.findElement(By.xpath("//div[@class='DayPicker-Caption']")).getText();放在 while 循环内。