gpt4 book ai didi

jquery - 使用 Capybara/Cucumber 单击链接

转载 作者:行者123 更新时间:2023-12-01 04:24:52 25 4
gpt4 key购买 nike

我正在尝试在 Jquery Mobile 应用程序上设置 Cucumber 测试,但测试点击会引发意外错误。这是场景:

问题.特征

Scenario: Clicking problem when not signed in
When I go to the wall page for The Beast
Then I should see "Blue"
When I click the problem "Blue"
Then I go to the sign up page

捕获倒数第二行的相关步骤如下:

步骤.rb

When /^I click the problem "(.*)"$/ do |problem_name|
find(:xpath, "//h3[text() = '#{problem_name}']/parent::a").click
end

在那之前一切都很顺利。当点击问题时,会抛出以下错误:

When I click the problem "Blue"
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each (ActionView::Template::Error)

我还尝试在steps.rb中的find().click调用之前添加一个调试器。当我手动运行 find 命令时,它确实返回以下内容:

(rdb:1) p find(:xpath, "//h3[text() = 'Blue']/parent::a")
#<Capybara::Element tag="a" path="/html/body/div/div[2]/ul/li[2]/a">

然后在调试器中运行,末尾带有“.click”会产生以下结果:

(rdb:1) p find(:xpath, "//h3[text() = '#{problem_name}']/parent::a").click
ActionView::Template::Error Exception: You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.each
(rdb:1) p find(:xpath, "//h3[text() = '#{problem_name}']/parent::a").click
nil

看来 capybara 可以找到正确的元素,但是当尝试单击它时,会以某种方式将其设置为零?我想知道如何使用 Capybara 正确执行我想要执行的点击。

最佳答案

我不认为 capybara 有问题。现在我遇到了同样的问题,我认为问题是您需要使用驱动程序来测试 JavaScript 操作(例如 selenium)并使用此驱动程序运行测试。

我认为您的按钮正在执行操作并刷新页面,但没有它需要的所有对象。如果您使用 JavaScript,则不会发生这种情况

关于jquery - 使用 Capybara/Cucumber 单击链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7248762/

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