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

如何使用XPath获取span标签内动态变化的数值用于后续对比?

问题原因

直接打印WebElement对象时,输出的是Selenium的元素定位描述信息,并非元素内部的文本内容。

正确实现方案
  • 基础修正:调用getText()方法提取元素的可见文本
  • 动态内容适配:添加显式等待逻辑,确保页面动态渲染完成、数值更新后再提取,避免获取到空值或旧数据
  • 数值转换:将提取到的带逗号的字符串替换为点后转为数值类型,即可用于后续对比操作

修正后代码示例

@Test
public void first(){
    chromeDriver.get("https://www.open.ru/");
    // 添加显式等待,最长等待10秒,直到目标元素可见
    WebDriverWait wait = new WebDriverWait(chromeDriver, Duration.ofSeconds(10));
    WebElement buyRateUSD = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//span[@class='main-page-exchange__rate']")));
    // 提取文本并转换为可对比的数值
    String rateText = buyRateUSD.getText();
    double rate = Double.parseDouble(rateText.replace(",", "."));
    System.out.println("out" + rateText);
    // 后续可直接使用rate变量做数值对比
}

注意:使用显式等待需要提前导入Selenium对应的工具类,JDK8+版本使用Duration指定超时时间即可。

兜底方案

如果遇到元素可见性异常导致getText()返回空的情况,可以替换为buyRateUSD.getAttribute("textContent")提取元素的全量文本内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:09:03