LINUX.ORG.RU
ФорумAdmin

как в bash написать curl команду позволяющую выбрать из выпадающего списка (<select>) - например, значение 4

 , ,


0

2

Есть страница на которой авторизуюсь:

curl -v -c /tmp/online.cookies --data «login=user1&password=pass1&sbm=OK» http://site.com/fk/lib/model/scripts/authentication.php

Далее, после авторизации редиректом перекидывает на страницу http://site.com/fk/lib/view/ftp-klient.php, на которой присутствует тот самый select (выпадающий список) выбор значения из которого нужно с помощью curl выбрать любое значение:

<form> <select name=«id_select_site» id=«id_select_site» size=«1» onchange='startAjax2({url:«/fk/lib/model/scripts/select/select-site-ftp://ftp.php»,method:«GET»,data:{name:document.getElementById(«id_select_site»).value}});'> <option value=«0»>Список FTP-сайтов:</option> <option value=«1»>Значение1</option> <option value=«4»>Значение2</option> <option value=«5»>Значение3</option> <option value=«6»>Значение4</option> <option value=«7»>Значение5</option> <option value=«8»>Значение6</option> <option value=«9»>Значение7</option> </select> </form>

Ответ на: комментарий от bl

Доступ по ssh, иксов нет

с selenium не знаком. сейчас посмотрю.

Вообще нужно на bash, т.к. два скрипта я уже сделал и нужен третий, с ним возникли трудности.

Скрипты которые сделал: 1ый) авторизация + добавление тех самых значений в БД, которые затем отображаются в данном селекте 2ой скрипт) получение списка этих значений в формате JSON

okuznetsov1 ()
Ответ на: комментарий от okuznetsov1

Таким не занимался, но для этого, кажется, надо использовать --form опцию, которая аналог --data (может и этой же можно).

xaizek ★★★★★ ()
Последнее исправление: xaizek (всего исправлений: 2)
Ответ на: комментарий от r0ck3r

нужно решение именно на curle

ваш вариант на wget - работает не как нужно (может я туплю, что-то не так делаю - не знаю). создаётся файл под именем «script.php?d_select_site=5», а в нём код HTML в котором есть форма и div следующие:

<form> <select name=«id_select_site» id=«id_select_site» size=«1» onchange='startAjax2({url:«/fk/lib/model/scripts/select/select-site-ftp://ftp.php»,method:«GET»,data:{name: <option value=«0»>Список FTP-сайтов:</option>^M </select> </form>

<div id=«printResult2»>Выберите значение из выпадающего списка...</div>

Так вот после выбора значения в селекте, в блоке <div id=«printResult2> вместо записи „Выберите значение из выпадающего списка“ должны появиться „Некие данные“, а как видно из этого вывода данные не появились, значит выбор значения из селекта не произошёл. Также сам селект пустой.

okuznetsov1 ()

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

Radjah ★★★★★ ()
Ответ на: комментарий от Radjah

Это через какой-то плагин делается? Или стандартный отладчик (контрол+шифт+S)? и где эта опция, если можно по подробней?

okuznetsov1 ()
Ответ на: комментарий от zudwa

В первом посте я показал форму и соответственно видно - куда и что отсылается. Можете пример команды показать, я уже такое ощущение - начинаю «тупить»

<form> <select name=«id_select_site» id=«id_select_site» size=«1» onchange='startAjax2({url:«/fk/lib/model/scripts/select/select-site-ftp://ftp.php»,method:«GET»,data:{name:document.getElementById(«id_select_site»).value}});'> <option value=«0»>Список FTP-сайтов:</option> <option value=«1»>Значение1</option> <option value=«4»>Значение2</option> <option value=«5»>Значение3</option> <option value=«6»>Значение4</option> <option value=«7»>Значение5</option> <option value=«8»>Значение6</option> <option value=«9»>Значение7</option> </select> </form>

Пробовал так (но результат - селект со значениями, но собитие «выбор/нажатие» не происходит): curl -v -b /tmp/online.cookies --request GET "http://site.com/fk/lib/view/ftp-klient.php?id_select_site=5"

okuznetsov1 ()
Ответ на: комментарий от okuznetsov1

получаю следующее:

<form> <select name=«id_select_site» id=«id_select_site» size=«1» onchange='startAjax2({url:«/fk/lib/model/scripts/select/select-site-ftp://ftp.php»,method:«GET»,data:{name:document.getElementById(«id_select_site»).value}});'> <option value=«0»>Список FTP-сайтов:</option> <option value=«1»>Значение1</option> <option value=«4»>Значение2</option> <option value=«5»>Значение3</option> <option value=«6»>Значение4</option> <option value=«7»>Значение5</option> <option value=«8»>Значение6</option> <option value=«9»>Значение7</option> </select> </form>

<p> </p>

<div id=«printResult2»>Выберите сайт для соединения по ftp://FTP...</div>

А должны в блоке <div id=«printResult2»> появится некоторые данные после выбора значения в селекте. Где-то, я что-то делаю не так

okuznetsov1 ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.