У меня есть форма с динамическим вводом, который необходимо заполнить. Проблема в том, что для заполнения формы мне нужно посетить другую страницу, чтобы получить данные, которые зависят от ввода на предыдущей странице. Поэтому после того, как я получил данные, а затем добавил их в форму, форма уже изменена, поэтому мне нужно сохранить эту форму открытой, пока я получаю данные для нее. Вопрос в том, как это сделать?CasperJS/PhantomJS как сохранить старую страницу открытой?
ответ
Может быть, с casper.back() и casper.forward(): https://github.com/n1k0/casperjs/blob/master/tests/suites/casper/history.js Я считаю, что ваша предыдущая форма будет сохранена в предыдущих step.I надеюсь, попробуйте.
Edit: GetData (NEWPAGE) был примером своего метода Casper, вы могли бы попробовать что-то вроде этого:
var password ="wtoc95a";
casper.getData = function (newPage, previousPageInputData) {
//visit another page
casper.open(newPage)
//or casper.open(newPage+previousPageInputData) if the new page opened use the previous input
.then(function() {
//here you do what you want using "input" argument of the previous page
//just return the data you need to fill the form
});
return dataNeeded;
};
And in your form :
this.fill('form[id="signup_frm"]', {
nick_name: "pseudo",
e_mail: "mail",
password: "password",
password2: password,
input : casper.getData(arg1,arg2)
Нет. После использования casper.back(); появляется другая форма. Я использую casper.back(); дважды. – Randomius
Ну, это просто повторяет старый шаг. И если вы попытаетесь позвонить своему собственному методу, чтобы получить данные и вернуть их. В вашем сценарии, когда вы заполните форму, вызовите casper.getData (newPage), чтобы заполнить ее. – Fanch
Где я могу прочитать о casper.getData? – Randomius
Вы могли бы создать два экземпляра Каспер. Если ваш первый экземпляр будет иметь первую страницу, а при необходимости создайте другой экземпляр и получите данные от него. Храните данные в глобальном масштабе.
Сделать waitFor до тех пор, пока значение переменной не будет установлено в первом экземпляре.
Я пробовал несколько методов для создания второго экземпляра. Во-первых, я попытался создать два экземпляра сразу, а CasperJS/PhantomJS работает только с последним, игнорируя первый. Во-вторых, я помещаю второй экземпляр в функцию и запускаю его, когда это необходимо, поскольку результат = не работает. Можете ли вы показать мне рабочий пример, пожалуйста? - – Randomius
- 1. urllib.urlopen возвращает старую страницу?
- 2. Попытка перенаправить старую страницу на новую страницу
- 3. WebMatrix показывает старую страницу еще
- 4. Переписывание системы ... сохранить старую схему?
- 5. Как сохранить старую версию пользовательского Workflow?
- 6. Имея динамический контент, сохраняя старую статическую страницу
- 7. Перенаправить на более старую страницу в php?
- 8. Получить текущую старую страницу, размещенную в Mediawiki
- 9. Как сохранить веб-страницу
- 10. Сохранить страницу как XML
- 11. Как сохранить офлайн страницу
- 12. Минимизировать книгу/лист, но сохранить форму открытой
- 13. Navigation.PopAsync показывает старую страницу на мгновение
- 14. Сохранить новый идентификатор в старую таблицу
- 15. Перенаправить старую страницу ASP на новую страницу ASP.net
- 16. Visual Studio post-build: сохранить консоль открытой?
- 17. Javascript - переопределить console.log и сохранить старую функцию
- 18. Как сохранить закусочную открытой после того, как действие вызвано
- 19. Как сохранить страницу как черновик
- 20. Как добавить еще одно действие на страницу регистрации открытой корзины?
- 21. Как сделать страницу открытой и не перенаправлять при загрузке файла?
- 22. Как установить обязательную домашнюю страницу для открытой сети Wi-Fi?
- 23. Как получить старую страницу разрешения для приложений Facebook
- 24. VBA: Как сохранить форму открытой для заданного количества секунд
- 25. Как сохранить «MODAL» с открытой формой на управляемой проверке bean?
- 26. Как сохранить вкладку текущей категории, остается открытой с помощью ddaccordian.init?
- 27. Как заставить HtmlUnit сохранить страницу?
- 28. Как сохранить полную веб-страницу
- 29. История Api: Как сохранить страницу
- 30. Как сохранить страницу с $ .ajax()
Не получил весь сценарий. Можете ли вы привести пример? –
Итак, у вас есть форма, содержащая captcha (2 + 2/image), чтобы ее решить, вам нужно отправить запрос на скрипт, который может это сделать. Как отправить и получить запрос, когда форма открыта? – Randomius