Xpath запускается с завершением - с проверкой

Juliana Po спросил: 12 мая 2018 в 04:59 в: c#

Я делаю автоматизацию в MTM.

UI:

Как низкий как: $ 12,983.30 $ 108.19 120 5.43%

  1. Мне нужно проверить, что номер 12,983.30 начинается с $
  2. Мне нужно проверить, что число 5.43 заканчивается на%

Код: для 1-го теста

Итак, я смог что элемент $ 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 ответ

JeffC ответил: 13 мая 2018 в 12:45

Значение $ не является первым символом. Вы тянете div, который начинается с "Total Cost: ...", поэтому "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() it

"$12,983.30"

, а затем убедитесь, что первый символ "$"

Этот код будет выглядеть примерно как

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

Теперь вы можете проверить, что price начинается с "$".