Xpath开始 - 结束 - 验证

时间:2018-06-05 18:39:43

标签: c# selenium-webdriver xpath microsoft-test-manager

我在MTM做自动化。

UI:

低至:$ 12,983.30 $ 108.19 120 5.43%

  1. 我需要验证号码12,983.30以$
  2. 开头
  3. 我需要验证号码5.43以%
  4. 结尾

    代码: for 1st test

    所以我能够验证元素$ 12,983.30是否存在且有$:

    "xpath" "//*[+id='-student-loan-finder-form']/div/div[17]/div[2]/div[2]/div[2][text()[contains(., '$')]]" "Total Cost has $" "true" 
    

    但我没有成功验证该号码是以$:

    开头的
    "xpath" "//*[+id='-student-loan-finder-form']/div/div[17]/div[2]/div[2]/div[2][text()[starts-with(., '$')]]" "Total Cost starts with $" "true"
    

    我做错了什么?

1 个答案:

答案 0 :(得分:0)

$不是第一个字符。您正在拉动以“总成本:...”开头的DIV,因此“T”是第一个字符,这是在考虑starts-with()时所比较的内容。

有很多方法可以做到这一点。可能最简单的方法是将返回的文本拆分为“:”然后Trim()并查看第二部分。

鉴于您发布的HTML

<div class="col-md-2 col-sm-12 totalCostLow">
    <span class="mobile-label">Total Cost: </span>
    $12,983.30
</div>

从外部DIV获取文本会返回类似的内容(空格可能不同)

"Total Cost:  $12,983.30 "

您可以使用“:”

拆分该字符串
"Total Cost", "  $12,983.30 "

抓住第二个字符串,然后Trim()

"$12,983.30"

然后确保第一个字符是“$”

该代码看起来像

string priceString = <get the price string>; // e.g. "Total Cost:  $12,983.30 "
string price = priceString .Split(':')[1].Trim();

现在,您可以验证price以“$”开头。