【问题标题】:How to get dynamic numbers using xpath?如何使用 xpath 获取动态数字?
【发布时间】:2021-11-08 20:54:07
【问题描述】:

如何在 span 块中获得动态变化的数字?

<div class="main-page-exchange__indicator">
   <span class="main-page-exchange__rate">72,54</span></div>
</div>

方法:

@Test
public void first(){
    chromeDriver.get("https://www.open.ru/");
    WebElement buyRateUSD = chromeDriver.findElement(By.xpath("//span[@class='main-page-exchange__rate']"));
    System.out.println("out" + buyRateUSD);
}

我不知道该怎么做。我的方法 xpatch 返回值:

"out[[ChromeDriver: chrome on WINDOWS (7ec6711c86cc8089e3bd06c161cdebf8)] -> xpath: //span[@class='main-page-exchange__rate']]" 

如何获取这些块中动态变化的数字以进行进一步比较?

【问题讨论】:

  • 它返回值?如果是这样,那么实际问题是什么?
  • 它不返回以下形式的值:“72,54”
  • 它返回什么,请编辑并添加更多详细信息
  • 上面写的是我的方法返回

标签: java selenium xpath junit


【解决方案1】:
chromeDriver.get("https://www.open.ru/");
WebElement buyRateUSD = chromeDriver.findElement(By.xpath("//span[@class='main-page-exchange__rate']"));
System.out.println("out" + buyRateUSD.getText());

byRaetUSD 是一个 web 元素,你应该调用 getText 来获取文本,或者你可以调用

  buyRateUSD.getAttribute("textContent") 

如果元素不在视口中,因为 getText 找到内部测试并会考虑 isdisplayed 。如果 isdisplayed 是下降 getText 将返回空字符串。 getAttribute("textContent") 不关心 isDisplayed 因此如果元素存在,它将返回文本

【讨论】:

    【解决方案2】:

    您的代码返回 WebElement 类型的值

    要获取您需要使用buyRateUSD.getText() 的文本,这应该将文本作为字符串提供给您,您可以进一步解析它以使用它。

    【讨论】:

    • 如果你写:buyRateUSD.getText();系统输出。 println ("exit" + 美元购买率);那么它仍然会返回 WebElement 类型。 PDHide 选项正在工作,但我不知道为什么以及如何在不参考 System.out 的情况下使用 get.Text() 方法。 println().
    • 查看链接的文档,它将返回一个String。而且我不确定我是否理解您关于如何在没有 System.out 的情况下使用 getText() 的评论...
    猜你喜欢
    • 1970-01-01
    • 2020-07-30
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 1970-01-01
    相关资源
    最近更新 更多