2015-06-16 3 views
-1

Каков наилучший способ обработки диалоговых окон браузера (с кнопками ok/cancel) с использованием capybara/selenium?Как сопоставить диалог браузера с помощью capybara/selenium

Как я нашел проще всего, выполнив следующие действия:

dialog = page.driver.browser.switch_to.alert 
dialog.accept 

Любые мысли для лучшего подхода?

Кто сбитый этот пост, пожалуйста, дайте уважительную причину ... это не полезно вниз голосования без причины, почему

ответ

1

Где это возможно, следует стараться избегать использования лежащего в основе драйвера непосредственно. Используя API Capybara, вы были бы (теоретически) в лучшем положении, если вы хотите изменить драйвер и есть различия в API-интерфейсе драйвера.

От Capyabara's project page, способ справиться с модальными диалогами:

В водителях, которые поддерживают его, вы можете принять, отклонить и ответить на предупреждения, подтверждают и подсказки.

Вы можете принять или отклонить предупредительные сообщения, обернув код, который производит оповещение в блоке:

accept_alert do 
    click_link('Show Alert') 
end 

Вы можете принять или отклонить подтверждение, обернув его в блок, как хорошо:

dismiss_confirm do 
    click_link('Show Confirm') 
end 

Вы можете принять или отклонить приглашения, а также, а также предоставить текст заполнить для ответа:

accept_prompt(with: 'Linus Torvalds') do 
    click_link('Show Prompt About Linux') 
end 

Все модальные методы возвращают сообщение, которое было представлено. Таким образом, вы можете получить доступ к оперативному сообщению, назначая возврат к переменному:

message = accept_prompt(with: 'Linus Torvalds') do 
    click_link('Show Prompt About Linux') 
end 
expect(message).to eq('Who is the chief architect of Linux?') 
+0

Спасибо за обмен этого варианта! выглядит чище !! – Bodao

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