Лучший способ сделать это - найти элемент и утверждать, что его нет. Это не только создает повторно используемый код, но и весь тест не будет взорван, если он не сможет его найти.
Это то, что я делаю ...
определите свой объект
def username
page.find('.username')
end
Затем взаимодействуйте с объектом в вашем спецификационном файле
username.should be_true
Вам действительно не важно, находится ли элемент на странице (большую часть времени). Когда вы пишете тесты, вас волнует, можете ли вы взаимодействовать с этим элементом ... вот почему я сначала определяю объект, а затем использую «имя пользователя» для взаимодействия с ним ... посмотрите, сколько кода можно использовать повторно вы можете генерировать? Теперь вы можете щелкнуть, навести указатель мыши, подтвердить наличие элемента, ввести текст для элемента и т. Д.
Кроме того, вам, безусловно, следует рассмотреть возможность использования css поверх xpath, когда это возможно. xpath легче ломать и труднее читать.