我正在尝试将文字输入到www.google.com'的文本框中。虽然它表示文本字段存在,但它不会将数据输入文本字段。这同样适用于FF 46.0和chrome。
以下是我的代码
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
ie浏览器的输出如下
"search bar"
"input present"
""
另请注意,我在后台运行selenium hub和节点。当集线器和节点在前台运行时没有问题
我正在使用以下设置selenium独立服务器2.53.1,watir gem版本5.0.0,selenium-webdriver gem版本2.53.1,IE版本11,IEDriverServer_Win32_2.53.1。
答案 0 :(得分: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
部分,因为这对我不起作用,而且我无法使用输入按钮找到解决方法。