我正在使用jQuery Selectable管理日历。该功能很好用,仅仅是测试自动化的问题。
我需要从日历网格中选择多个非连续日期。
我尝试了几件事,并不是真的期望它们能工作
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键,因为实际上仅选择了最后选择的日期。
您可以使用selenium-
webdriver的动作构建器。但是,firefoxdriver中似乎存在一个错误,目前阻止该错误运行(可能是问题4863)。
这是使用Chrome的“ jQuery可选”页面的工作示例:
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
问题内容: 关于如何使用Capybara / Selenium / Rspec 执行javascript测试的例子很多,您可以在其中编写如下测试: 但是,使用 minitest时, 您无法传递第二个参数来指示selenium执行测试。 有没有人对如何做到这一点有任何想法? 问题答案: 嗯,我注意到文档中有几行似乎说以上内容只能在Rspec中完成 但是,如果您使用的是 RSpec或Cucumber
我想测试一个返回可选客户机的方法。 我一直在跟踪这个链接Mockito错误,方法返回可选的
我已经在我的Rails4应用程序中实现了JQuery文件上传。当我从浏览器手动测试文件上传时,文件上传工作正常,但测试失败。 下面是我上传JQuery文件的规范:需要'spec\u helper' 我使用rspec2、水豚2和恶灵来实现这个特性规范。
我试图从一个列表中自动设置多个表单,我打开到他们自己的选项卡。我可以在运行脚本之前准备页面的最简单的方法是将它们全部打开。我打算让selenium运行对表单的更改,然后我希望它在Ctrl+Tab下一个更改中运行。我将使用循环while来设置计数。我目前有它在HTML记录,如果我需要调整到java或我会很乐意这样做。 我试着录下来,但没有。
我有一个Selenium Grid和WebDriver 2.48.2测试运行得太快。大多数时候测试会停止,因为在按下按钮之前没有选择单选按钮。 单选按钮是使用基于JSON文件的JavaScript设置的,以在一个部分中动态创建任意数量的单选按钮。一旦单击继续按钮,该部分将被销毁,并使用新的单选按钮创建新的部分。 我尝试了一种含蓄的等待,但没有成功。 对我来说唯一有效的解决方案是延迟,以便有足够的时