c# - Xpath 以验证开始,以验证结束
问题描述
我在 MTM 中做自动化。
用户界面:
低至:$12,983.30 $108.19 120 5.43%
- 我需要验证数字 12,983.30 以 $ 开头
- 我需要验证数字 5.43 以 % 结尾
代码: 第一次测试
所以我能够验证元素 $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"
我做错了什么?
解决方案
$ 不是第一个字符。您正在提取以“总成本:...”开头的 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
以“$”开头。
推荐阅读
- r - 如何从一个data.frame中获取数据并将其放入另一个具有多个条件的R中
- python - 在 div 标签 Python Scrapy 中获取 HTML
- c - CS50 clang-10:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- r - R中具有不同属性名称的嵌套Json
- python - 使用 DataFrame 将包含实数的 ndarray 导出为实数和复数作为复杂格式
- c# - 关于用数字打印半三角形的问题
- python - Max-Min 归一化范围相关的混淆
- java - 从 springboot 后端接收并重新发送的对象具有包含空值的字段
- javascript - freecodecamp 数卡练习题
- c++ - 当我尝试在模板化函数中使用迭代器时,“在 'typename' 之后需要一个限定名称”