pup*_*eno 34 webkit ruby-on-rails keypress capybara
我需要在使用Capybara和WebKit的集成测试中向Web应用程序发送一些按键.使用Selenium(WebDriver和Firefox)我可以这样实现:
find("#element_id").native.send_keys :tab
Run Code Online (Sandbox Code Playgroud)
但是WebKit的本机元素节点没有send_keys方法.实际上,WebKit中的native返回了一个包含数字的字符串.是否有另一种方法可以向WebKit发送击键?甚至可能使用JavaScript/jQuery的一些解决方法?
d_r*_*ail 18
我一直试图实现Marc的答案,但没有任何成功,但我从类似的问题中找到了一些帮助:capybara:用终止输入键填写表单字段值.显然有一个来自水豚的拉动请求似乎解决了这个问题.
对我有用的是:
before { fill_in "some_field_id", with: "\t" }
Run Code Online (Sandbox Code Playgroud)
我的示例删除了字段中的文本然后按下Tab.填写字段'foobar',替换"\t"为"foobar\t".您还可以使用"\n"该Enter密钥.
对于您的示例,您可以使用:
find("#element_id").set("\t")
Run Code Online (Sandbox Code Playgroud)
Mar*_*nez 14
你可以这样做:
keypress_script = "var e = $.Event('keydown', { keyCode: #{keycode} }); $('body').trigger(e);"
page.driver.browser.execute_script(keypress_script)
Run Code Online (Sandbox Code Playgroud)
Hen*_*k N 13
这对我使用Poltergeist来触发星号键:
find("body").native.send_key("*")
Run Code Online (Sandbox Code Playgroud)
我对其他解决方案没有运气; 甚至不是Syn.
这是为了触发角度热键事件.
现在,从Capybara-webkit 1.9.0开始,您可以使用send_keys发送回车键和其他回车键:
find("textarea#comment").send_keys(:enter)
Run Code Online (Sandbox Code Playgroud)
来源:https : //github.com/thoughtbot/capybara-webkit/issues/191#issuecomment-228758761
Capybara API文件:http ://www.rubydoc.info/github/jnicklas/capybara/Capybara%2FNode%2FElement%3Asend_keys
| 归档时间: |
|
| 查看次数: |
21546 次 |
| 最近记录: |