Xpath начинается с проверки, заканчивается проверкой - PullRequest
0 голосов
/ 05 июня 2018

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

Пользовательский интерфейс:

Столь же низко: $ 12 983,30 $ 108,19 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 Ответ

0 голосов
/ 06 июня 2018

$ не первый символ.Вы вытягиваете DIV, который начинается с «Total Cost: ...», поэтому «T» является первым символом, и это то, что сравнивается при рассмотрении starts-with().

. Существует множество способов сделать это.,Вероятно, самый простой способ - разделить возвращаемый текст на «:», а затем Trim() и посмотреть на 2-ю часть.

Учитывая 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 начинаетсяс "$".

...