clear
(и set
) не определены для общих входных элементов - то есть Watir::Input
. Они определены только для конкретных типов ввода - текстового поля, флажка и т. Д.
Для того, чтобы код работал, вам нужно будет преобразовать input
в более конкретный тип, что, скорее всего, текстовое поле. Вы можете сделать это, используя to_subtype
метод:
test_input_field.when_present.to_subtype.clear
test_input_field.when_present.to_subtype.set(search_entry)
Как отмечает @SaurabhGaur, set
начинается уже очистив существующее значение, так что вы можете просто сделать: не
test_input_field.when_present.to_subtype.set(search_entry)
Если изменения типа input
, он было бы более целесообразно определить элемент как text_field
, поэтому вам не нужно его преобразовывать. Это может зависеть от того, на какой странице библиотеки объектов вы используете, но я ожидаю, что вы могли бы сделать:
element(:test_input_field) { |b| b.text_field(class: "search-field") }
def set_search_value(search_entry)
test_input_field.when_present.clear
test_input_field.when_present.set(search_entry)
end
Я думаю установить также очистить старое значение перед установкой нового значения, поэтому можно удалить эту строку 'test_input_field.when_present.clear 'и попробуйте .. –
kk yea true, но для меня было более важно, почему ясность и ввод не работают вместе :) – Becks303
Так вот, это уже ответил Джастин Ко..последовательно, чтобы следовать его ответу .. :) –