Състояние на раса Capybara/Selenium при изтриване на запис

Тествам за изтриване на записи от клас ActiveRecord с помощта на Capybara/Selenium. Действителното изтриване се извършва с помощта на скрипта Gherkin (битът xPath е, за да мога да намеря правилния потребител за изтриване):

When(/^I delete the other (.*)$/) do |role|
  visit '/users'
  page.evaluate_script('window.confirm = function() { return true; }')
  find(:xpath, %{//tr[td='Bob']/td[@class='list_actions']//a[@data-method='delete']}).click
end

За съжаление, когато проверявам списъка с потребители, Боб все още е там. Въпреки това, ако поставя на пауза изпълнението (използвайки израз ask), тогава, когато възобновя, съм сигурен, че Боб е изчезнал. Така че изглежда, че Capybara проверява за съществуването на Боб, преди Selenium/Rails да го изтрият.

Търсейки това в гугъл, изглежда има много объркване относно това дали Selenium изчаква действие click и всички решения, които мога да намеря, предполагат, че нещо се добавя, така че да могат да изчакат, докато се появи -- не е така в моя сценарий.

И така, как мога да се отърва от това състояние на състезание -- да накарам Selenium да изчака, докато записът бъде изтрит?


person digitig    schedule 10.09.2014    source източник
comment
В края на стъпката на изтриване изчакайте, докато записът изчезне от базата данни.   -  person Dave Schweisguth    schedule 11.09.2014
comment
Да, това е, което искам да направя. Как го правя?   -  person digitig    schedule 11.09.2014
comment
Като това: stackoverflow.com/a/23555725/634576   -  person Dave Schweisguth    schedule 11.09.2014