我希望使用脚本中提供的值检查UI上的值。在比较这两个时,它应该在控制台中显示消息“test passed”。
我写了以下代码: -
browser.find_element(:xpath,"//*[@id="total"]/tbody/tr/td[4]/span").value.should == "$466,634,599.67"
但它在控制台上没有显示任何内容。接下来可能需要什么?
谢谢! 阿布舍克巴克
答案 0 :(得分:1)
断言,例如.should==
,通常在测试框架中使用,例如RSpec,MiniTest,Cucumber等。这些测试框架旨在报告断言的通过或失败结果。
鉴于您没有使用测试框架,您需要手动处理结果输出。
最简单的方法是删除断言部分并使用if
语句:
element_value = browser.find_element(:xpath,"//*[@id="total"]/tbody/tr/td[4]/span").text
if element_value == "$466,634,599.67"
puts 'Test passed'
else
puts 'Test failed'
end
请注意,puts
语句用于将结果输出到控制台(除非您更改了默认输出位置)。
或者,如果你想使用断言,你可以这样做:
element_value = browser.find_element(:xpath,"//*[@id="total"]/tbody/tr/td[4]/span").text
element_value.should == "$466,634,599.67"
puts 'Test passed'
在这种方法中,如果测试失败,断言将引发异常。断言将停止代码的执行,因此不会输出'测试通过'消息(如预期的那样)。如果测试通过,则测试通过'消息会输出。
答案 1 :(得分:0)
我为此目的使用capybara gem。它可以检查几乎所有前端的可能性。 代码看起来像这样:
describe "User pages" do
subject { page }
describe "index" do
before(:each) do
sign_in user
visit users_path
end
it { expect(page).to have_selector('li', text: user.name) }
end