Как найти элемент текстового узла с помощью Mink?

#php #functional-testing #behat

#php #функциональное тестирование #behat

Вопрос:

Мне было интересно, у меня есть этот HTML :

 <li>
  <span class="jqTransformRadioWrapper">
    <a rel="choices[choices]" class="jqTransformRadio jqTransformChecked" href = "#"></a>
    <input type="radio" id="choices_choices_5" value="5" name="choices[choices]" class="jqTransformHidden">
  </span>
  <label for = "choices_choices_5" style = "cursor: pointer;">My awesome test</label>
</li>
  

Некоторые из вас могут распознать, что входные данные были преобразованы в JQ

Мне было интересно, как нажать на ярлык с названием «Мой потрясающий тест».

Прямо сейчас, я делаю :

    $el = $this->getSession()->getPage()->find('css', 'ul li span.jqTransformRadioWrapper a');
   $el->click();
  

Но он выбирает первый элемент. И я хочу выбрать их по названию (и только) для этого примера это будет «Мой потрясающий тест».

Спасибо

Ответ №1:

Вот ответ :

 $this->getSession()->getPage()->find('xpath', '//label[text()="My awesome test"]');
  

Комментарии:

1. Это приведет к сбою при использовании ZombieJS в качестве драйвера: xpaths для драйвера Zombie не должен содержать символ " , иначе сервер выйдет из строя (на <= 1.3.1, я не знаю о 1.4.0 ). Вместо этого используйте find('xpath', "//label[text()='My awesome test']");