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

如何在Selenium WebDriver中用XPath contains()函数定位对应日历备注元素

方案1:传入日期直接返回对应日历备注元素

你可以直接使用如下可参数化的XPath,把${targetDate}替换为你要查询的日期(比如13、14)即可返回对应日期的备注WebElement:

//div[@class='ext-cal-wk-ct']/table/tbody/tr[2]/td[position() = count(//div[@class='ext-cal-wk-ct']/table/tbody/tr[1]/td/div[text()='${targetDate}']/../preceding-sibling::td) + 1]/div

逻辑说明:

  1. 先定位到第一行tr中值等于目标日期的div
  2. 计算该div所属的td是当前行的第几个
  3. 直接取第二行tr中相同位置td下的div,也就是对应日期的备注元素

如果你的实际页面中ext-cal-wk-ct下确实有多个table,需要取第二个的话,把上述XPath中的table替换为table[2]即可。如果日期前后有多余空白字符,把text()='${targetDate}'替换为contains(text(), '${targetDate}')即可适配。


方案2:通用模糊匹配(兼容日期/备注内容查询)

如果你需要传入任意文本(可以是日期,也可以是备注里的内容比如Tim Cook)都能匹配到对应元素,可以直接用以下简化写法:

//div[@class='ext-cal-wk-ct']//td/div[contains(text(), '${targetText}')]

传入不同的${targetText}即可得到你需要的元素,完全兼容你之前编写的两个单独XPath的能力。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:57:03