You need to enable JavaScript to run this app. 如何使用Selenium+NodeJS自动化操作日期选择器并选中日期范围
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Selenium+NodeJS自动化操作日期选择器并选中日期范围

Selenium NodeJS 日期范围选择实现方案

你当前操作的是Mobiscroll框架的日期范围选择组件,完成月份切换后,按以下逻辑实现日期范围选中即可:

操作前提

示例日期选择器

核心实现步骤

  • 切换到目标月份后,先定位所有可选日期元素,有效日期的类名为.mbsc-cal-day-text,需排除带mbsc-disabled类的禁用日期
  • 先点击起始日期对应的元素,再点击结束日期对应的元素,组件会自动完成范围选中
  • 建议添加显式等待逻辑,避免元素未渲染完成导致点击失效

改进后完整代码

const { By, Key, Builder, until } = require('selenium-webdriver');
require('chromedriver');

// 封装选择日期的通用方法
async function selectDate(driver, targetDate) {
  // 等待日期元素加载完成
  await driver.wait(until.elementsLocated(By.css('.mbsc-cal-day-text:not(.mbsc-disabled)')), 10000);
  const dateElements = await driver.findElements(By.css('.mbsc-cal-day-text:not(.mbsc-disabled)'));
  for (let el of dateElements) {
    const dateText = await el.getText();
    if (dateText === String(targetDate)) {
      await el.click();
      break;
    }
  }
}

async function datePickerTest(){
  const driver = await new Builder().forBrowser('chrome').build();
  // 设置隐式等待
  await driver.manage().setTimeouts({implicit: 10000});

  try {
    await driver.get('https://www.carnextdoor.com.au/search');

    await driver.findElement(By.name('location')).clear();
    let city = 'Sydney Airport, Airport Dr, Sydney, New South Wales 2020, Australia';
    await driver.findElement(By.name('location')).sendKeys(city);
    await driver.findElement(By.name('location')).sendKeys(Key.RETURN);

    // 打开日期选择器
    await driver.findElement(By.css('.cyp-datetime-picker-modal')).click();

    // 切换7次月份到目标月份
    for(let i=0; i<7; i++) {
      await driver.findElement(By.css('.mbsc-cal-next-m')).click();
    }

    // 选择日期范围:15号作为开始日期,20号作为结束日期
    await selectDate(driver, 15);
    await selectDate(driver, 20);

    // 可在此处添加确认选择的操作,比如点击确定按钮
  } catch (err) {
    console.error('操作失败: ', err)
  } finally {
    await driver.quit();
  }
}

datePickerTest();

注意事项

  • 如果需要跨月选择范围,先选完起始日期后再切换到结束日期所在月份,再点击结束日期即可
  • 部分日期选择器需要点击「确认」按钮才能完成提交,选中范围后可对应添加确认操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:57:02