如何编写包含可变属性的XPath以定位动态变化的视频时长元素
解决方案
你当前的XPath是精准匹配固定aria-label值的写法,自然只能匹配到时长为10秒的元素,你可以用以下两种更通用的写法:
- 方案1:通过固定特征匹配(最稳定)
你给出的HTML元素是YouTube的视频时长专属渲染标签,class和id都是固定的,直接用这两个特征定位即可,无需依赖动态变化的aria-label值,写法如下://span[contains(@class, 'ytd-thumbnail-overlay-time-status-renderer') and @id='text']
匹配到元素后,你可以直接取元素的文本内容(即0:20这类格式化时长),也可以取aria-label属性值获取文字版时长描述。 - 方案2:通过
aria-label的通用特征匹配
如果你确实需要通过aria-label属性定位,可以用模糊匹配规则,匹配所有属性值含时长单位的元素:# 仅匹配秒级时长 //*[contains(@aria-label, 'seconds')] # 适配秒、分钟、小时级时长 //*[contains(@aria-label, 'seconds') or contains(@aria-label, 'minutes') or contains(@aria-label, 'hours')]
内容的提问来源于stack exchange,提问作者Zqdiac Thanks
相关产品推荐
相关产品推荐

