Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.02.2015, 14:45
Новичок на форуме
Отправить личное сообщение для buthil Посмотреть профиль Найти все сообщения от buthil
 
Регистрация: 06.02.2015
Сообщений: 4

Программный клик на не стандартной кнопке
Здравствуйте, коллеги!
Работаю в больнице. Есть внутренняя программа для записи пациентов на прием (Delphi 7) и база (SQL Server 2008 r2).
Имею задачу наладить онлайн передачу данных на сайт Мин здрава области.
В программе использую вместо IE компонент TChromium.
Для навигации и ввода данных применяю конструкцию:
ExecuteJavaScript(Sq,'about:blank',0), где Sq - текст скрипта.
Таким образом удалось пройти окно авторизации и отобразить окно поиска пациентов.
Здесь имеются визуальные поля для ввода ФИО, а также кнопка Поиск.
ФИО удалось заполнить программно, а вот программно кликнуть на кнопку не удается.
В редакторе браузера Mozilla для этой кнопки я получил такой код:

<td class="lsd-form-grid-cell lsd-forms-field-control ">
<div class="lsd-buttons-panel">
<span id="3793" class="lsd-widgets-action lsd-focusable lsd-widgets-action-operation-full-search lsd-lockable lsd-lockable-submit lsd-input-focused" title="Поиск">
<a class="lsd-widgets-action-link lsd-widgets-action-text" href="javascript:void(0);">
Поиск</a>
<span class="lsd-widgets-action-data" style="display:none;"></span>
</span></div></td>

При этом числовой id изменяется при каждом открытии страницы.
Я пробовал так:
Сначала нашел все node по getElementsByClassName.
Потом по вхождению уникального текста в InnerHTML нашел потребную node и кликнул по ней: node.click();
Но ни чего не произошло. Собственно, здесь и нет обработчика onClick.
Пробовал установить фокус и передаться по ссылке, взятой из href:
node.focus();document.location.href="javascript:vo id(0);";
Тоже ни какого результата.
Может устанавливать фокус и кликать нужно по внутренним элементам этой node?
Прошу пощи!
С уважением, buthil.
Ответить с цитированием
  #2 (permalink)  
Старый 06.02.2015, 16:09
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

buthil, так ты до какого, в итоге, элемента добрался? там ведь ячейка, див, спаны и ссылка...

Сообщение от buthil
Потом по вхождению уникального текста в InnerHTML нашел потребную node и кликнул по ней: node.click();
Но ни чего не произошло. Собственно, здесь и нет обработчика onClick.
Его могут навешивать скриптом после загрузки страницы.
Возможно твой "клик" выполняется раньше чем то навешивание происходит...
Ответить с цитированием
  #3 (permalink)  
Старый 06.02.2015, 16:16
Аспирант
Посмотреть профиль Найти все сообщения от freee
 
Регистрация: 05.02.2015
Сообщений: 51

Попробуй что-нибудь из этого:
<html>
<head>
</head>
<body>



<td class="lsd-form-grid-cell lsd-forms-field-control ">
<div class="lsd-buttons-panel">
<span id="3793" class="lsd-widgets-action lsd-focusable lsd-widgets-action-operation-full-search lsd-lockable lsd-lockable-submit lsd-input-focused" title="Поиск">
<a class="lsd-widgets-action-link lsd-widgets-action-text" href="http://javascript.ru">
Поиск</a>
<span class="lsd-widgets-action-data" style="display:none;"></span>
</span></div></td>


<script>

document.querySelector(".lsd-buttons-panel").click()
document.querySelector(".lsd-widgets-action-link").click()



</script>

</body>
</html>
Ответить с цитированием
  #4 (permalink)  
Старый 06.02.2015, 16:18
Аспирант
Посмотреть профиль Найти все сообщения от freee
 
Регистрация: 05.02.2015
Сообщений: 51

buthil,
//offtop
А, если не секрет, какие именно данные пациентов отправляются в область?
Ответить с цитированием
  #5 (permalink)  
Старый 06.02.2015, 16:21
Аспирант
Посмотреть профиль Найти все сообщения от freee
 
Регистрация: 05.02.2015
Сообщений: 51

Сообщение от buthil
нет обработчика onClick
А причем тут обработчик, если ты пишешь, что тебе надо просто кликнуть? Какое конкретно действие должно происходить по клику?
Ответить с цитированием
  #6 (permalink)  
Старый 06.02.2015, 16:24
Аспирант
Посмотреть профиль Найти все сообщения от freee
 
Регистрация: 05.02.2015
Сообщений: 51

Сообщение от buthil
Пробовал установить фокус и передаться по ссылке, взятой из href:
node.focus();document.location.href="javascript:vo id(0);";
Тоже ни какого результата.
Эта ссылка никуда не ведет, это сброс, фактически. Какого результата ты ждешь?
Ответить с цитированием
  #7 (permalink)  
Старый 06.02.2015, 16:30
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от freee
Попробуй что-нибудь из этого:
Он пишет на
Сообщение от buthil
Delphi 7
А ты ему JS-примеры показываешь...
Ответить с цитированием
  #8 (permalink)  
Старый 06.02.2015, 16:39
Аспирант
Посмотреть профиль Найти все сообщения от freee
 
Регистрация: 05.02.2015
Сообщений: 51

Сообщение от ksa
Delphi 7
Причем тут твои дельфи сраные, если он страницу в браузере открывает. Страница отрисована, значит к ней есть доступ из JS.
Сообщение от ksa
Его могут навешивать скриптом после загрузки страницы.
Возможно твой "клик" выполняется раньше чем то навешивание происходит...
На текстовой ноде невозможно произвести клик.
<html>
<head>
</head>
<body>

<a href="http://ya.ru">txt</a>

<script>

a=document.querySelector("a")
alert(a.childNodes[0])
try{
a.childNodes[0].click()
}catch(e){alert(e)}



</script>

</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 06.02.2015, 16:43
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от freee
Причем тут твои дельфи сраные, если он страницу в браузере открывает.
Ты видать слепой...
Сообщение от buthil
Есть внутренняя программа для записи пациентов на прием (Delphi 7) и база (SQL Server 2008 r2).
Имею задачу наладить онлайн передачу данных на сайт Мин здрава области.
В программе использую вместо IE компонент TChromium.
Для навигации и ввода данных применяю конструкцию:
ExecuteJavaScript(Sq,'about:blank',0)
, где Sq - текст скрипта.
Таким образом удалось пройти окно авторизации и отобразить окно поиска пациентов.
Здесь имеются визуальные поля для ввода ФИО, а также кнопка Поиск.
ФИО удалось заполнить программно, а вот программно кликнуть на кнопку не удается.
Я х/з как еще объяснить...
Ответить с цитированием
  #10 (permalink)  
Старый 06.02.2015, 16:45
Аватар для ksa
ksa ksa на форуме
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от freee
На текстовой ноде невозможно произвести клик.
Почем мне знать на каком элементе он кликает? Это я и пытался у него узнать
Сообщение от ksa
так ты до какого, в итоге, элемента добрался? там ведь ячейка, див, спаны и ссылка...
И пока ответа не получил...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery - не работает клик по кнопке выбора варианта bartonom jQuery 0 04.10.2012 13:35
Клик срабатывает без щелчка на кнопке - почему?.. deivan Events/DOM/Window 3 13.08.2012 14:42
Как при быстром многократном клике по кнопке обрабатывать только первый клик battrack jQuery 3 22.03.2012 10:47
дать клик по кнопке alerzo Events/DOM/Window 3 10.09.2011 17:21
клик по кнопке alerzo Events/DOM/Window 1 20.08.2011 23:39