2010-09-02 5 views
2

У меня есть кнопка (не кнопка отправки), которая выполняет вызовы ajax перед отправкой другой формы.Как перейти от перенаправления с javascript в огурец?

То, что я хочу сделать, это

Given I am viewing homepage 
When I press "JustAButton" 
Then I should be on "https://stackoverflow.com/users/home" 

Но Перенаправление происходит несколько поздно, и «Тогда» оператор не удается, учитывая, что страница все еще находится в начальной странице. Как я могу подождать, пока вызовы ajax (которые будут вызваны нажатием кнопки) закончены, и страница будет отправлена?

Любые идеи?

EDIT: Пример кода

яваскрипта Для

<input type="button" id="btn_Send" value="Send"/> 

браузер (пожалуйста, игнорировать синтаксические ошибки, я думаю, вы получите общую идею)

document.ready(){ 
$("#btn_Send").click(function(){ 
    ajax.post('some url',<params>, callbackForSuccess); 
} 

function callbackForSuccess(result){ 
    $("#form1").submit(); 
} 
+0

Вы используете этот сценарий Cucumber с драйвером, который поддерживает Javascript, например. Селен? Если нет, javascript/ajax на вашей странице не будет выполняться при запуске вашего сценария. – Sidane

+0

@sidane, да, я это делаю. нормальные вызовы ajax обрабатываются должным образом. но когда есть форма javascript, она не распознает их. –

+0

Хорошо. И это поведение работает, если вы проверите его вручную в браузере? Можете ли вы опубликовать какой-либо из своих кодов, чтобы дать более четкое представление о том, что вы делаете? – Sidane

ответ

0

Правильно - «Я должен быть на» выполняет это утверждение сразу, прежде чем у JavaScript появится возможность загрузить другой пейджер.

Вам нужно будет определить шаг, ожидающий, пока браузер не окажется на указанной странице (или таймауте).