2014-10-15 2 views
2

Я использую watir для автоматизации удаления элементов с использованием цикла while, но когда скрипты достигают конца, это вызывает ошибки, поскольку элемент, в котором цикл while зависит от больше не видно. Есть ли в любом случае, чтобы Ватир продолжал испытание?Как обращаться с Watir :: Exception :: UnknownObjectException:

Вот пример моего кода:

class Delete_element 

    def org_roster_remove 
    parameters = Tt_parameters.new 
    driver = Login.new.log_in(parameters.username3, parameters.password3) 
    while driver.a(:data_class, 'home.group.edit_group_btn').visible? == true 
     driver.p(:data_class, 'home.conv.messagePreview').hover 
     sleep(1) 
     driver.div(:class, 'delete').click 
     sleep(1) 
     driver.a(:data_class, 'home.conv.deleteFromRoster_btn').click 
     sleep(1) 
    end 
    driver.quit 
    end 
end 

Это ошибка:

Watir::Exception::UnknownObjectException: unable to locate element, using {:data_class=>"home.group.edit_group_btn", :tag_name=>"a"}

+2

Я думаю, что вы хотите использовать 'присутствует?' Вместо 'видимым?'. Проверьте этот недавний вопрос SO: http://stackoverflow.com/questions/25877525/whats-the-difference-between-visible-and-present – orde

ответ

3

Я хотел бы использовать .present? вместо .visible?

Также рассмотрите возможность использования .wait_until_visible вместо сна. См. Watir-webdriver Waiting.

Кроме того, исследовать структуру страницы объекта, такие как Cheezy's page-object gem

+0

Спасибо. Материал Cheezy был очень полезен – Dimi

Смежные вопросы