Получение случайного текста рядом с выбранным переключателем с помощью xpath в watir - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть какой-то случайный текст рядом с переключателями в группе переключателей.Я пытался получить его, используя xpath и watir, но мне не повезло с этим.Вот пример HTML-кода для него

<html> 
<head></head> 
<body> 
 <input type="radio" name="options" value="No">No <br />
 <input type="radio" name="options" value="Yes">Yes <br />
 <input type="radio" name="options" value="Maybe">Maybe <br />
</body> 
</html> 

Я могу получить выбранную радиокнопку, используя xpath, по

selectedRadio = browser.radio(:xpath,"//input[@checked and @name='options']")

Как я могу получить, скажем Да, Нет, Возможно, если соответствующие радиокнопкивыбран?Я также пытался получить его с помощью Watir, но метод .text не работал бы с объектом Watir :: RadioButton, что было бы правдой, поскольку тексты являются случайными текстами.

Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

Данный HTML-код не является правильно сформированным XML, поэтому я думаю, что выражение будет зависеть от того, как Waitr анализирует входные данные.Если он думает, что текст является потомком элементов input, например:

<input type="radio" name="options" checked="checked" value="No">No </input><br />
<input type="radio" name="options" value="Yes">Yes </input><br />
<input type="radio" name="options" value="Maybe">Maybe </input><br />

, то используйте это выражение:

//input[@checked and @name='options']/text()

Если, с другой стороны, онавтоматически закрывает input и обрабатывает текст как родного брата, например:

<input type="radio" name="options" checked="checked" value="No"/>No <br />
<input type="radio" name="options" value="Yes"/>Yes <br />
<input type="radio" name="options" value="Maybe"/>Maybe <br />

Затем используйте следующее выражение:

//input[@checked and @name='options']/following-sibling::text()[1]

Я предполагаю, что это второеправильный, так как вы уже сказали, что .text не работает.

0 голосов
/ 21 ноября 2011

Попросите разработчика сделать страницу более удобной для тестирования, поместив текст, связанный с переключателем, внутри метки , связанной с кнопкой через значение идентификатора

<form>
  <input type="radio" name="sex" id="male" />
  <label for="male">Male</label>
  <br />
  <input type="radio" name="sex" id="female" />
  <label for="female">Female</label>
</form>

Затем вы можетеполучить идентификатор для выбранной кнопки и довольно легко найти связанный текст метки.

Серьезно, для них, вероятно, намного проще сделать это, чем для вас иметь дело с небрежным кодом страницы.Он также предлагает им гораздо больше опций форматирования (с помощью CSS), чтобы этот текст был внутри контейнера меток.Выиграй все вокруг.

...