Я использую каратэ и нахожу способ сопоставления значений в глубоко расположенном диапазоне.
У меня есть такой случай:
...
<form action="#">
<div class="row">
<div class="col-lg-12">
<div class="card shadow mb-4">
<div class="card-header py-3 d-flex flex-row align-items-center justify-content-between">
<div class="card-body">
<p>...</p>
<div class="form-group " style="display: grid; grid-template-rows: auto auto;">
<span>
<label for="title">Title</label>
<input name="title" id="title" class="form-control" placeholder="e.g. My MacBook Key" value="">
</span>
<span class="invalid-feedback">Title is required</span>
</div>
<div class="form-group " style="display: grid; grid-template-rows: auto auto;">
<span>
<label for="key">Key</label>
<textarea name="key" id="key" class="form-control" rows="12" placeholder="Typically starts with "ssh-rsa" or "ssh-ed25519""></textarea>
</span>
<span class="invalid-feedback">Key is required</span>
Мне нужно проверить значение последнего диапазона (с использованием соответствия) - последняя строка (если «span требуется» присутствует в span).
Я пробовал некоторые варианты кода, но мне это не удалось. Например:
* match text('form/div/div/div/div:2/div:2/span:2') == 'Key is required'
или
* match text('{span:2}.invalid-feedback') == 'Key is required'
Есть идеи, как решить эту проблему, не используя полный xpath?
Спасибо.