Как мне определить текстовое поле пользовательского типа с динамическим идентификатором в WATiR?

#ruby #watir

#ruby #watir

Вопрос:

У меня есть этот ввод типа «Отправить», который Watir не может видеть. Я могу идентифицировать его по идентификатору, но он не отображается в browser.text_fields или любым другим методом идентификации. Идентификатор генерируется динамически, поэтому я не могу использовать его для тестирования. Есть идеи о том, как сделать это читаемым? При необходимости я готов изменить исходный код WATiR.

 <INPUT id=t8CPm value=Submit type=submit>
  

Я, очевидно, пробовал text_field(:value, 'Submit') и text_field(:type, 'Submit') , и я получаю ошибку «Не удается найти элемент».

Ответ №1:

Вы пробовали рассматривать его как элемент button? Входные данные типа submit обычно считаются кнопкой, потому что браузер обычно отображает их таким образом.

попробуйте

  browser.button(:value, 'Submit').flash
  

и посмотреть, работает ли это у вас

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

1. тип ввода submit соответствует методу button

2. Если бы существовал значок «почувствуй себя настоящим дворянином», я бы получил его сегодня утром. Проблема заключалась в том, что мой код искал z-кнопки, но моя страница входа не сгенерирована на ZK, это обычный HTML, поэтому я предположил, что это не кнопка. Усвоенный урок: никогда не предполагайте. Большое спасибо, работает абсолютно нормально.

3. Рад видеть, что мой ответ был прямо на кнопке. (надеюсь, теперь за плохие каламбуры не придется получать негативную репутацию)

Ответ №2:

Я изменил INPUT_TYPES на [«text», «password», «textarea», «submit»] в классе TextField input_elements.rb и вот оно.

Вероятно, мне также следует отредактировать коллекции, чтобы прочитать тип.

Редактировать: я идиот, и мне не нужно было этого делать, но я оставляю это здесь на случай, если кто-то нуждается, чтобы выявить реальный динамический идентификатор настраиваемого типа текстового поля, а не подделка динамический идентификатор настраиваемого типа текстового поля в моем конкретном случае как «кнопка».