测试jQuery可选的水豚或硒(Ctrl +单击) [英] Testing jQuery Selectable capybara or selenium (ctrl + click)
问题描述
我正在使用jQuery Selectable管理日历.此功能很好用,只需进入自动化测试即可.
I'm using jQuery Selectable to manage a calendar. This function works great, its just a matter of getting in to test automation.
我需要从日历网格中选择多个非连续日期.
I need to select multiple non-consecutive dates from the calendar grid.
我尝试了一些事情,并不是真的期望它们能工作
I've tried a few things, not really expecting them to work
date = '2013-05-02'
page.execute_script %{
var e = jQuery.Event("keydown");
e.ctrlKey = true; // # Some key code value
e.keyCode = 17
$("body").trigger(e);
}
find("td[data-date='#{date}']").click
我是针对一系列日期执行此操作的,但似乎并未考虑ctrl键,因为实际上只有最后选择的日期才被选择.
I do this for a series of dates but it seems to ctrl key isn't being considered because only the last date selected actually gets selected.
推荐答案
您可以使用selenium-webdriver的操作构建器.但是,firefoxdriver中似乎存在一个错误,目前无法阻止该错误(可能问题4863 ).
You can use selenium-webdriver's action builder. However, there seems to be a bug in the firefoxdriver that prevents this from working at the moment (possibly issue 4863).
以下是使用Chrome的"jQuery可选页面"的有效示例:
Here is a working example of the JQuery Selectable page using Chrome:
require 'capybara'
require 'capybara/dsl'
include Capybara::DSL
#Use selenium-webdriver with chrome
Capybara.register_driver :selenium do |app|
Capybara::Selenium::Driver.new(app, :browser => :chrome)
end
Capybara.current_driver = :selenium
#Go to the JQuery Selectable example page
Capybara.app_host = 'http://jqueryui.com/selectable/'
page.visit('')
#The controls are in a frame, so need to switch to it
within_frame 0 do
#Create a selenium-webdriver action builder
builder = page.driver.browser.action
#Hold control key down
builder.key_down(:control)
#Click all elements that you want, in this case we click all lis
#Note that you can retrieve the elements using capybara's
# standard methods. When passing them to the builder
# make sure to do .native
elements = page.all('ol#selectable li')
elements.each do |e|
builder.click(e.native)
end
#Release control key
builder.key_up(:control)
#Do the action setup
builder.perform
end
这篇关于测试jQuery可选的水豚或硒(Ctrl +单击)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!