Tag: 黄瓜

如何以较低的速度运行Selenium(通过Capybara使用)?

默认情况下,Selenium在我使用Cucumber定义的场景中尽可能快地运行。 我想将它设置为以较低的速度运行,因此我能够捕获该过程的video。 我发现Selenium::Client::Driver一个实例有一个set_speed方法。 这与Java API相对应。 如何获取Selenium::Client::Driver类的实例? 我可以得到page.driver ,但它返回一个page.driver Capybara::Driver::Selenium的实例。

Ruby gem黄瓜SSL错误和Gem来源

我试图为Ruby安装黄瓜gem。 尽管与此有些相关的主题很少,但我找不到具有确切答案的确切问题。 在Windows上,我尝试运行命令gem install cucumber并返回控制台: 错误:无法从https://rubygems.org/下载数据 – SSL_connect返回= 1 errno = 0状态= SSLv3读取服务器证书B:证书validation失败( https://s3.amazonaws.com/production.s3.rubygems .org / specs.4.8.gz ) 然后,我搜索了一个解决方案,并在此处找到了一些删除源代码的建议。 我运行了gem sources -r ,它已被删除。 但不仅仅是黄瓜。 现在我甚至无法添加源代码。

如何强迫黄瓜方案失败?

有没有办法迫使黄瓜情景失败? 我需要在每次测试结束时检查一些失败的情况。 所以我认为我可以检查“错误”对话框,然后如果它发生则测试失败。 这可以通过下面的代码实现,但是存在问题。 一旦我在失败中提出exception! 函数,然后黄瓜停止运行After钩子的其余部分,因此注销函数不会被调用。 是: After() do |scenario| #Checking for Error popups if page.has_selector?(:dialog_message, 1, :text => ‘Error’) fail!(raise(ArgumentError.new(‘Unexpected Error dialog!’))) end logout end 现在: After() do |scenario| #Checking for Error popups if page.has_selector?(:dialog_message, 1, :text => ‘Error’) scenario.fail!(logout) end end 是否有更好的方法可以在不引发exception的情况下通过黄瓜测试失败?

Rails:良好的Rspec2示例用法? (另外:Cucumber,Pickle,Capybara)

我正在寻找一个使用Rspec 2作为测试库的最新开源应用程序。 我想看看有经验的开发人员如何正确地利用库来测试完整的堆栈,因为我对自己的知识一直存在疑问(来自testunit,部分原因是由于最新Rspec版本的相当稀疏的文档,甚至虽然它不断改进)。 如果一个项目使用Cucumber,Pickle和/或Capybara以及Rspec 2,你会让我高兴得跳起来。 有什么指针吗? 干杯!

黄瓜没有找到步骤定义

我的黄瓜只是找不到步骤定义。 文件结构(只有Rails根目录下的specs文件夹)如下所示: -> specs -> features -> main_structure.feature -> step_definitions -> main_structure_steps.rb 这是main_structure.feature: Feature: Main structure Scenario: Viewing the Structure page When I am on the structure page 这是main_structure_steps.rb: When(/^I am on the structure page$/) do visit ‘/’ end 现在我像这样运行黄瓜命令: → cucumber spec/features -r features 我得到这个输出: Using the default profile… Feature: Main structure Scenario: Viewing […]

每个function之前和之后都有一个黄瓜钩

有没有办法在每个黄瓜function之前和之后运行特定代码块与某些标签? 由于设置过程非常昂贵,我不想在每个场景之前运行它。

如何解决Rails模型命名空间冲突

到目前为止的故事: 我有一个名为“Term”的模型的rails应用程序。 一切都很好,直到尝试安装黄瓜。 跑步的时候 rake cucumber 我明白了 Term is not a class (TypeError) 这是因为Cucumber包含另一个gem,’term-ansicolor’(在控制台中执行漂亮的彩色文本输出),term-ansicolor定义了一个名为“Term”的模块。 在包含Rails模型之前,Cucumber包括term-ansicolor,因此在加载“Term”模型时,“Term”已被定义为模块。 顶级模块和类在Ruby中不能具有相同的名称,因此发生冲突。 我不想重命名模型,而是开始修补term-ansicolor gem。 事实certificate这比我想象的更难。 我将Term模块名称更改为“ANSITerm”,但我无法弄清楚如何让Cucumber加载我修改过的gem,我已将其放入RAILS_ROOT / vendor / gems / term-ansicolor。 有任何想法吗? 我吠叫错了树吗?

Chrome 62和Flash

我有一个基于Flash的应用程序,我需要使用Cucumber进行测试。 由于默认情况下未启用闪存,因此我需要在每次测试之前启用它,并将我认为的url列入白名单。 如果我暂停测试的后台阶段,我可以手动设置这些选项。 我怎么能自动化这种方法,我已经考虑过添加options和preferences ,但似乎仍然无法开始工作。 所以这是我在env.rb文件中的标准设置 Capybara.register_driver :chrome do |app| chrome_binary = ‘/Applications/Google Chrome.app’ capabilities = Selenium::WebDriver::Remote::Capabilities.chrome(“chromeOptions” => { “binary” => chrome_binary + ‘/Contents/MacOS/Google Chrome’ }) Capybara::Selenium::Driver.new(app, :browser => :chrome, :desired_capabilities => capabilities, :options => options) end 进一步阅读强调了诸如此类的选项 options = Selenium::WebDriver::Chrome::Options.new options.add_argument(‘arg-here’) prefs = {“enable flash here ? “} options.add_experimental_option(“prefs”, prefs) undefined method add_experimental_option for […]