Я пишу сценарий с использованием Ruby и Watir, который должен распечатать результат смены монет. HTML выглядит так, когда вы выигрываете:
<div id="result" style="" class="center">
<div id="win" class="bold center">You win!</div>
<div id="lose" class="bold center"></div>
Когда вы проигрываете, текст в win
div исчезает, и You lose!
появляется в lose
div. Как вы можете видеть, result
содержит как win
и lose
. Я считаю, что одно или оба из этих наблюдений важны, но я не знаю, как использовать инструкцию if
чтобы выяснить, произошла ли победа или потеря.
Вы можете проверить, включен ли текст в соответствующий <div>. Например:
if browser.div(:id => "win").text.include? "You win!"
puts "won"
elsif browser.div(:id => "lose").text.include? "You lose!"
puts "lost"
else
puts "something went wrong with the coin flip"
end
И более простой пример:
if browser.div(:id => "win").text.include? "You win!"
puts "won"
else
puts "lost"
end
Для получения дополнительной информации об условных структурах управления ознакомьтесь с разделами If и UnExpression в главе " Выражения" в " Программирование Ruby".
Это должно дать вам представление:
<% if @result.heads? %>
<div id="win" class="bold center">You win!</div>
<% else %>
<div id="lose" class="bold center"></div>
<% end %>
Это зависит от вашей модели результата, выглядящей примерно так:
class Result
def initialize
@heads = [true, false].sample
end
def heads?
@heads
end
def tails?
!heads?
end
end