2013-05-01 3 views
2

Я уже посмотрел this, но не повезло.Как установить значение скрытого ввода с помощью Selenium?

Я попробовал этот пример, и это говорит undefined browserbot, я также попытался просто:

@browser.navigate.to "http://example.com" 
@browser.execute_script("$('#hiddenthing').val('foo bar')") 

который не работает вообще, если я пытался установить значение без JavaScript, он говорит you can't interact with hidden elements.

Любые предложения?

ответ

5

Selenium WebDriver не может взаимодействовать со скрытыми элементами, он может их находить. Если вы попытаетесь сделать какое-либо взаимодействие с пользователем на скрытом элементе, вы получите сообщение об ошибке, которое вы видели выше.

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

Однако SWD обеспечивает возможность ввода любого javascript в DOM браузера (что делает обработку этих типов требований более разумной, если только немного сложнее).

Попробуйте эти два способа, выполнив javascript (как вы видели из вышеупомянутой темы, с которой вы связались). Просто помните, что это требует использования return команды:

@browser.execute_script("return document.getElementById('hiddinthing').value = 'foo';") 

или если у вас есть JQuery

@browser.execute_script("return $('#hiddenthing').val('foo');") 
Смежные вопросы