gpt4 book ai didi

ruby-on-rails - capybara Selenium 和 JavaScript 销毁

转载 作者:行者123 更新时间:2023-12-04 17:28:20 25 4
gpt4 key购买 nike

我正在使用 rails 2.3.5,这就是我所做的。我安装了最新的 cucumber 、 cucumber rails 和 capybara 。

rails demo
cd demo
ruby script/generate cucumber --rspec --capybara
ruby script/generate feature post title:string body:text published:boolean
ruby script/generate scaffold post title:string body:text published:boolean
rake db:migrate
rake cucumber

所有的测试都通过了。现在我想使用 Javascript 进行测试。

此时场景是这样的
  Scenario: Delete post
Given the following posts:
|title|body|published|
|title 1|body 1|false|
|title 2|body 2|true|
|title 3|body 3|false|
|title 4|body 4|true|
When I delete the 3rd post
Then I should see the following posts:
|Title|Body|Published|
|title 1|body 1|false|
|title 2|body 2|true|
|title 4|body 4|true|

我在顶部添加了@javascript。

现在,当我运行 rake cucumber 时,我会看到一个确认页面。但是在我点击之前什么也没有发生。

我需要做什么才能自动单击“确定”并继续进行测试。

最佳答案

嗯,这是一种黑客行为,但我认为现在这是唯一的方法:

When /^I confirm a js popup on the next step$/ do
page.evaluate_script("window.alert = function(msg) { return true; }")
page.evaluate_script("window.confirm = function(msg) { return true; }")
end

您必须将此步骤放在触发确认弹出窗口的步骤之前(按照链接)。它将修改标准警报并确认行为以始终返回 true。因此,您不必自己单击“确定”按钮。

关于ruby-on-rails - capybara Selenium 和 JavaScript 销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2828342/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com