如何使用水豚Cucumber 断言 ruby?? 中的 html 表行数 | 珊瑚贝

How to assert on number of html table rows in ruby using capybara + cucumber


我正在尝试使用 Cucumber capybara 在 Ruby 中进行 BDD Web 开发,但我被困在应该是一件容易的事情上 – 只是检查表中的行数。我试图达到的目的是这样的:

1
2
page.should have_xpath(“//table[@id=’myTable’]”)
find(“//table[@id=’myTable’]/tr”).length.should == 3

但这不起作用(缺少方法长度),我找不到针对表长度断言的方法。

任何想法任何人(请对我放轻松,我是ruby小白)

提前致谢

尼尔

  • 你能粘贴完整的错误吗?


尽管 have_css? 可以解决问题,但您的测试应该告诉您它们是如何失败的,而不是仅仅说某些条件应该为真而它是假的。考虑到这一点,下面的第一个例子比第二个更好:

1
2
3
4
5
# IF FAILED =>”expected 10, got 7″
page.all(‘table#myTable tr’).count.should == 10

# IF FAILED =>”expected true, got false”
page.should have_css(“table#myTable tr”, :count=>10)

  • 同意@andersonvom:测试失败时会更好。


我认为你可以这样做:

1
page.should have_css(“table#mytable tr”, :count=>3)


由于某种原因,”has_css” 对我不起作用,但是 “all(selector)” 真的很好用

1
all(“table#movies tr”).count
  • 这些评论是2年前的……但是是的!它们对我的 SaaS 硬件非常有帮助))))
  • Spooky – 我在 2 年前写了这个问题,现在我正在上 Berkley SaaS 课程。互联网是一个很小的地方 – 无论是那个还是整个互联网都在课程中:)


我最终选择了这个:

1
2
3
4
5
Then /^I should see“(.*)” once$/ do |text|
    within_table(‘myTable’) do
      should have_xpath(“//tr”, :text => text, :count => 1)
    end
end

看起来非常优雅。

我知道其他答案有效,但这似乎读得很好。

有什么意见吗?


这样可以了解html表格的行数。

1
area = find_by_id(‘#areaID’).all(‘tr’).size

假设表的开头有列。这样可以达到实际的数字。

1
area = area1

#find 方法只返回一个元素(如果有多个匹配项,我认为它只返回第一个元素)所以你不会得到#length 方法,因为#find 的结果是一个节点而不是一个数组。

要向自己证明这一点,请尝试

1
puts find(“//table[@id=’myTable’]/tr”).class


你想要的是#all,它将返回一个包含所有匹配节点的数组。


来源:https://www.codenong.com/2986250/

微信公众号
手机浏览(小程序)

Warning: get_headers(): SSL operation failed with code 1. OpenSSL Error messages: error:14090086:SSL routines:ssl3_get_server_certificate:certificate verify failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(): Failed to enable crypto in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57

Warning: get_headers(https://static.shanhubei.com/qrcode/qrcode_viewid_9079.jpg): failed to open stream: operation failed in /mydata/web/wwwshanhubei/web/wp-content/themes/shanhuke/single.php on line 57
0
分享到:
没有账号? 忘记密码?