You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Selenium Java操作MakeMyTrip无法定位出发日历元素该如何解决

MakeMyTrip网站Selenium动态选择当前日期解决方案

元素不可点击问题主要来自两个原因:一是用了固定时长的Thread.sleep,无法保证元素加载完成且处于可交互状态;二是MakeMyTrip首页默认会弹出登录浮层,遮挡了下方的出发日期输入控件,直接操作输入框会被拦截。

以下是完全无需硬编码日期的实现方案:

  • 使用Selenium显式等待替换Thread.sleep,自动等待元素达到可交互状态再执行操作
  • 优先处理页面遮挡的登录浮层,避免操作被拦截
  • 利用日历控件的内置类名匹配当前日期元素,无需写死任何日期数值

完整实现代码

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import java.time.Duration;

public class MmtDatePicker {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\Users\\rutsahoo\\Documents\\chromedriver.exe" );
        WebDriver driver = new ChromeDriver();
        driver.manage().window().maximize();
        driver.get("https://www.makemytrip.com/");
        
        // 显式等待设置,最长等待10秒
        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));

        // 点击空白处关闭弹出的登录浮层
        wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("body"))).click();

        // 等待出发日期输入框可点击后触发日历弹窗
        wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//label[@for='departure']"))).click();

        // 直接定位日历中当天的元素(自带固定类名无需硬编码日期)
        wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector(".react-datepicker__day--today"))).click();

        // 后续业务逻辑...
        
        driver.quit();
    }
}

扩展通用日期选择方案(可选)

如果需要选择非当日的其他日期,可通过Java时间类动态计算目标日期,同样无需硬编码:

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Locale;

// 示例:选择当前日期后7天的日期
String targetDate = LocalDate.now().plusDays(7)
        .format(DateTimeFormatter.ofPattern("EEE MMM dd yyyy", Locale.ENGLISH));
// 匹配日历控件中对应日期的属性点击
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("[aria-label='" + targetDate + "']"))).click();

内容的提问来源于stack exchange,提问作者Anjali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 14:15:03