0

Я пытаюсь ввести текст в текстовое поле на странице «www.google.com», и хотя он говорит, что текстовое поле присутствует, оно не вводит данные в текстовое поле. То же самое прекрасно работает в FF 46.0 и хром.Вставка текста в текстовое поле не происходит в IE 11

Ниже мой код

require 'rubygems' 
require 'watir' 

browser = Watir::Browser.new(:ie) 
browser.goto('www.google.com') 

browser.wait_until(60) { 
    browser.div(:id, 'sb_ifc0').present? 
} 
if browser.div(:id, 'sb_ifc0').present? 
    p 'search bar' 
end 

if browser.input(:class, 'gsfi').present? 
    p 'input present' 
    browser.text_field(:class, 'gsfi').set('watir') 
    p browser.text_field(:class, 'gsfi').value   
    browser.send_keys :enter 
end 

Выход для браузера, т.е., как показано ниже

"search bar" 
"input present" 
"" 

Также обратите внимание, что я бегу ступицу селена и узел в фоновом режиме. Нет проблемы, когда концентратор и узел запущены на переднем плане

Я использую автономный сервер selenium для установки 2.53.1, версию watir gem версии 5.0.0, версию selenium-webdriver версии 2.53.1, версию IE 11 , IEDriverServer_Win32_2.53.1.

ответ

0

В поле http://www.google.com поле ввода было <input name="q" ... > и не имеет class, поэтому watir не смог его найти.

Изменить text_field поиск использовать name вместо:

require 'rubygems' 
require 'watir' 

browser = Watir::Browser.new 
browser.goto('www.google.com') 

browser.text_field(:name => 'q').set('watir') 
browser.button(:type => 'submit').click 

p browser.url 

Я также должен был изменить раздел send_keys :enter, потому что это не работает для меня, и я не мог найти обходной путь, используя кнопку ввода.