【问题标题】:WebDriver getText() Method with replace using Java使用 Java 替换的 WebDriver getText() 方法
【发布时间】:2015-01-19 10:25:13
【问题描述】:

HTML 代码

<span data-bind="html: TotalCharges">
<span class="CurrencySymbol">USD </span>
7400.00
<br>
(0.00+0.00)
</span>

Webdriver 使用 getText 方法获取 Totalcharge 值

代码:

driver.findElement(By.xpath("//span[@data-bind='html: TotalCharges']")).getText().substring(4);

with above 将得到以下输出 "7400.00 (0.00+0.00)"

我的预期输出:“7400.00”

那么如何替换“
”标签中的字符(需要替换“(0.00+0.00)”) 我正在使用java

【问题讨论】:

  • 您的输入 HTML 与输出不匹配,因为数字不同。请编辑问题。
  • 感谢更新了值
  • 你能确定在想要的值后面总是有相同的字符串(0.00+0.00)吗?我的意思是,我们可以在代码中对其进行硬编码并替换吗?
  • @alecxe: 是的,String 格式相同

标签: java selenium xpath selenium-webdriver


【解决方案1】:

使用以下xpath获取7400.00:

driver.findElement(By.xpath("//span[@class='CurrencySymbol']/following-sibling::text()[1]").getText();

哦,我的错误,感谢您纠正我@alecxe: 您可以通过以下方式获得它:

driver.findElement(By.xpath("//span[@class='CurrencySymbol']/.."))
        .getText().split("\n")[0].split(" ")[1]

\n 处拆分会将其拆分为&lt;br&gt; 标记。

【讨论】:

  • 行不通,xpath 应该指向一个实际的元素——而不是文本节点。
  • @Prabu 如果有帮助,请您标记一下,以便其他人也能从中受益...谢谢...
  • @Prabu 如果它解决了您的问题,请不要忘记接受这个答案。谢谢!
【解决方案2】:

尝试以下解决方案。它会给你 7400.00 的输出-

String temp = driver.findElement(By.cssSelector("html>body>span")).getText();
String s1=temp.replace("USD", "").replace("\n", "").replace("\r", "");
String finalStr = s1.substring(0,s1.indexOf("(")).trim();
System.out.println(finalStr);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-03-13
    • 1970-01-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多