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

Selenium IDE中点击日历高亮今日按钮及获取波斯太阳历日期的实现方法

解决方案:Selenium IDE中获取波斯太阳历日期并点击今日按钮

当然可以通过Selenium IDE实现点击高亮的今日按钮,下面分两部分给你具体的实现步骤:

一、获取波斯太阳历日期

JavaScript本身没有内置波斯太阳历(Jalali Calendar)的支持,所以我们需要手动实现一个轻量的转换逻辑。你可以在Selenium IDE的Execute Script命令中运行以下代码,获取当前日期的波斯历格式(格式为YYYY-MM-DD,你可以根据日历的显示格式调整):

// 波斯历转换核心函数
function gregorianToJalali(gYear, gMonth, gDay) {
    var g_d_m = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334];
    var jy = gYear <= 1600 ? 0 : 979;
    gYear -= gYear <= 1600 ? 621 : 1600;
    var gy2 = (gMonth > 2) ? (gYear + 1) : gYear;
    var days = (365 * gYear) + Math.floor((gy2 + 3) / 4) - Math.floor((gy2 + 99) / 100) + Math.floor((gy2 + 399) / 400) - 80 + gDay + g_d_m[gMonth - 1];
    jy += 33 * Math.floor(days / 12053);
    days %= 12053;
    jy += 4 * Math.floor(days / 1461);
    days %= 1461;
    jy += Math.floor((days - 1) / 365);
    if (days > 365) days = (days - 1) % 365;
    var jm = (days < 186) ? 1 + Math.floor(days / 31) : 7 + Math.floor((days - 186) / 30);
    var jd = 1 + ((days < 186) ? (days % 31) : ((days - 186) % 30));
    return [jy, jm, jd];
}

// 获取当前公历日期
var d = new Date();
var gYear = d.getFullYear();
var gMonth = d.getMonth() + 1;
var gDay = d.getDate();

// 转换为波斯历并补零格式化
var jalaliDate = gregorianToJalali(gYear, gMonth, gDay);
var jy = jalaliDate[0];
var jm = jalaliDate[1] < 10 ? '0' + jalaliDate[1] : jalaliDate[1];
var jd = jalaliDate[2] < 10 ? '0' + jalaliDate[2] : jalaliDate[2];
return jy + "-" + jm + "-" + jd;

运行这段代码后,用Store Script Result命令把结果保存到一个变量(比如jalaliToday),后续可用于元素定位。

二、点击高亮的今日按钮

有两种可靠的定位方式,你可以根据日历的实际HTML结构选择:

方式1:通过波斯历日期文本定位

如果日历的今日按钮上显示的是波斯历日期(比如1403-05-12),可以用以下定位器:

  • XPath://*[text()='${jalaliToday}'](${jalaliToday}是你之前保存的变量)
  • 更精确的定位(假设日期元素是<td>标签)://td[text()='${jalaliToday}']

然后用Click命令点击该元素即可。

方式2:通过高亮元素的属性定位

通常日历会给今日元素添加特殊class(比如today、active、highlighted),这种方式比文本定位更稳定,无需依赖日期格式:

  • CSS Selector:td.today(假设今日元素是带today类的<td>)
  • XPath://td[contains(@class, 'today')]

直接用Click命令点击定位到的元素即可。

注意事项

  • 运行转换代码时,确保Selenium IDE允许执行自定义JavaScript(默认是允许的)。
  • 如果日历的波斯历日期格式不是YYYY-MM-DD,可以调整代码里的返回格式(比如改成jy/jm/jd)。
  • 定位元素前,建议用Selenium IDE的Inspect工具查看日历元素的HTML结构,确认class或文本特征。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 14:37:37