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

Selenium操作MakeMyTrip出发日期选择器触发点击拦截异常如何解决

问题原因

你遇到的ElementClickInterceptedException是Selenium常见的点击拦截异常,从错误日志可以直接定位根因:

  • 页面加载完成后自动弹出了登录模态框(对应报错信息中的<div data-cy="outsideModal" class="loginModal ..."></div>元素),该弹窗的层级高于你要点击的出发日期字段
  • 你尝试点击日期字段时,点击事件被上层的登录弹窗拦截,无法触达目标元素
解决方案

推荐按优先级选择以下两种方案:

方案1:先关闭登录弹窗再操作(推荐,贴合真实用户操作)

先等待登录弹窗加载完成,点击关闭按钮清除遮挡后,再操作日期选择字段,示例代码如下:

// 导入依赖包
import org.openqa.selenium.support.ui.WebDriverWait;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.By;
import java.time.Duration;

System.setProperty("webdriver.chrome.driver","C:/Users/Selenium/libs/Mar18/chromedriver.exe");
driver = new ChromeDriver();
            
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.get("http://www.makemytrip.com");

// 初始化显式等待,最长等待10秒
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10));
// 等待登录弹窗关闭按钮可点击,执行关闭操作
wait.until(ExpectedConditions.elementToBeClickable(By.cssSelector("span.commonModal__close"))).click();
            
// 等待出发日期字段可点击后再点击
WebElement dateCal = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[@class='font30 latoBlack']")));
dateCal.click();

提示:如果后续网站更新导致关闭按钮的class失效,可以改用data-cy等业务属性定位元素,稳定性更高

方案2:使用JavaScript点击绕过拦截

如果你的测试场景不需要验证登录弹窗的交互逻辑,可以直接通过JS执行点击,跳过元素层级拦截,示例代码如下:

// 导入依赖包
import org.openqa.selenium.JavascriptExecutor;

// 原有页面操作逻辑不变
System.setProperty("webdriver.chrome.driver","C:/Users/Selenium/libs/Mar18/chromedriver.exe");
driver = new ChromeDriver();
            
driver.manage().window().maximize();
driver.manage().deleteAllCookies();
driver.get("http://www.makemytrip.com");
            
//定位日历元素
WebElement dateCal = driver.findElement(By.xpath("//span[@class='font30 latoBlack']"));
// 用JS执行点击,绕过层级遮挡
JavascriptExecutor jsExecutor = (JavascriptExecutor) driver;
jsExecutor.executeScript("arguments[0].click();", dateCal);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:15:00