在text_field中输入文本后需要触发事件

时间:2014-06-12 20:41:37

标签: watir-webdriver page-object-gem

我需要在文本字段中输入一些文本,然后在文本字段的tabout中输入,以便文本字段中的值由服务验证。我试图点击页面中的其他元素,但显然没有触发事件来调用服务。在这种情况下有解决方法吗?谢谢!

class MyPage

 include PageObject
 text_field(:txtinput, :id => 'textV1')
 span(:for,:id   =>  'For' )

  def enter_my_info(data)
    self.txtinput = data
    self.for_element.click  # click someother element in the page
  end 
end

3 个答案:

答案 0 :(得分:2)

这种行为通常通常由“onblur”引发。事件。您可以手动触发此操作使用页面对象元素的fire_event方法。

def enter_my_info(data)
  self.txtinput = data
  self.txtinput_element.fire_event('onblur')
end 

如果这不起作用,您可以尝试模仿用户行为并输入制表符。您可以通过send_keys方法发送特殊密钥。

def enter_my_info(data)
  self.txtinput = data
  self.txtinput_element.send_keys(:tab)
end 

答案 1 :(得分:1)

您是否尝试过发送元素

上的Tab键

http://watirwebdriver.com/sending-special-keys/

答案 2 :(得分:0)

我最终只是点击了父母:

t = b.text_field(class: 'uploadFileTitle', tracknum: index.to_s)
t.set(track.name)
t.parent.click // loses focus here