Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник |
Коллекция курьезных вопросов из форумов
KOL и MCK |
KOL и MCK - Компактные программы на Delphi
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »
Страницы: 1 2 3 4

Работа с Web-платформой Olymp Trade


TraderProg ©   (21.02.18 08:58[40]

Форум был недоступен долго (((

В общем вчера намучился в том числе пытался разные варианты  FEATURE_BROWSER_EMULATION пробовать, но так и не заработало на 2-м ВПС - то есть платформа видна, цена движется, нажимаются вспомогательные кнопки, но самые главные на отрез не хотят нажиматься. Похоже блокируется закачка JavaScript или их исполнение, хотя в настройках IE их исполнение разрешил - поставил галочку в настройках. По 1-му ВПСу тоже лучше не стало - страница так и не хочет загружаться.


Redmond   (21.02.18 11:06[41]

гм... гм... Если например обновить IE? Какая там версия-то?


TraderProg ©   (21.02.18 11:23[42]

в обоих ВПСах 11-ая, а какая именно подверсия позже могу сказать.


TraderProg ©   (21.02.18 15:52[43]

В 1-м ВПСе (где вообще страница с платформой не открывается):
Версия: 11.0.9600.18053
Версия обновления: 11.0.24 (KB3093983)

Во 2-м ВПСе (где только скрипты на главных кнопках не работают):
Версия: 11.0.9600.18861
Версия обновления: 11.0.49 (KB4052978)

На домашнем компе (где все нормально работает на данный момент):
Версия: 11.248.16299.0
Версия обновления: 11.0.51 (KB4074736)

У обоих ВПСов: Windows Server 2012 R2
У меня винда - 10-ка.

Может действительно дело в обновлении. Как обновлять браузер IE? Я ни разу в своей жизни его не обновлял, какая система бы не стояла - как то так обходился.


TraderProg ©   (21.02.18 16:23[44]

2-й сервак обновил - установилось только Силверлайт. Не помогло.

А как-то можно не с самим компонентом-браузером в программе работать, а непосредственно с установленным браузером (Хром, Яндекс-браузер или Мозилла) - также читать цену и воздействовать на кнопки в открытой странице?


TraderProg ©   (21.02.18 20:40[45]

В общем установил все возможные обновления на оба сервера - без результата.
Вижу пока 2 пути в каком направлении копать, если отбросить настройку IE:
1. Все таки попробовать TChromium, на нем без проблем можно исполнять яваскрипты, но невозможно получить объекты DOM (исходя из пролистывания сайтов по этой теме), а так как невозможно получить объекты DOM, то непонятно как считывать цену и нажимать на кнопки.
2. Писать расширение (плагин) для браузера Chrome на чистом Javascript (файлы json), там вроде как возможна работа с объектами DOM, но это уже не под Delphi, и даже не под любой другой IDE с графическим интерфейсом. Только блокнот, только хардкор.

Поправьте меня, если я все неправильно понял и наговорил крамольных мыслей.


TraderProg ©   (21.02.18 21:20[46]

Еще одно интересное наблюдение: запустил на 2-м ВПСе параллельно браузер Хром и мою прогу с TWebBrowser. Нажимаю руками кнопки "Выше", "Ниже", и в этот момент в моей программе ни с того ни с чего генерируется та же самая ошибка сценария. это при том что программа просто стояла и не выполняла никаких действий - просто был включен компонент TWebBrowser c загруженной страницей платформы.


ухты ©   (21.02.18 21:52[47]

прикольная тема))

за это время уже можно было либо наваять бот на том же шарпе, либо взять что то типа электрона и на скриптах с хрониумом (не трогая делфи), либо уже наконец прочитать как дебажить скрипты в браузерах, потом понять что не хватает и починить то что уже наваяли.
хотя зачем лозе баян, то есть боту браузер так и не понятно..

продолжаем кушать попкорн))


TraderProg ©   (22.02.18 05:09[48]

Вот и тролли подятнулись. Я не проф. прог-т, а новичок, так что многое непонятно и скорее всего что-то не так делаю и поэтому прошу помощи в решении вопроса. А если ты не тролль и видишь как решить проблему то пож-та помоги.

P.S. у Олимптрейда есть только Веб-платформа, так что без браузера не обойтись. Был бы у них Metetrader 4 или 5 я бы сюда вообще не писал.


TraderProg ©   (22.02.18 05:11[49]

В плане C# - выйдет тоже самое так как он использует тот же компопнент WebBrowser, базирующийся на IE. А IE упорно не хочет работать как надо на VPS


ухты ©   (22.02.18 13:32[50]

Новичку надо читать и учиться, а вы пишите какуюто ерунду которую даже комментировать не интересно.
Что бы вам помочь надо чтобы и вы помогли. Я может быть и поковырялся у них и может быть помог вам, но там надо регаться, а мне это не к чему. Вам бы сделать тестовый аккаунт, для людей. Так и с показом ошибок, прицепились к картинкам, вы кому проще делаете себе или тем кто может помочь? ну раз вам в лом, то и другим особо не интересно.


TraderProg ©   (22.02.18 15:18[51]

ухты, я бы с радостью подучился, подскажи что читать, где искать? а то в инете ищу и везде одна и та же скопипастенная инфа скудного содержания. Создам тестовый аккаунт сегодня чуть позже и выложу сюда.

Про картинки не понял - тут вроде нет возможности их добавить


Redmond   (22.02.18 16:46[52]

Надо разобраться что не нравится IE. Пока это не станет понятно TWebBrowser колупать бесполезно.
Техподдержка сайта на это что говорит-то?

Про TChromium не помню. Если там и можно делать аналогичные действия - то точно не так же как в TWebBrowser. Но увы не подскажу.

Ещё был TGeckoBrowser, но он кажется давно сдох. Но откапать сей сторонний компонент и протестировать сайт на нём думаю возможно.


TraderProg ©   (22.02.18 18:23[53]

В техподдержку пока не писал - сомневаюсь что смогут помочь.
Сейчас вожусь с Tchromium.
Нашел как в нем работать с Cookies (он в отличие от ВебБраузера не умеет автоматом запоминать учетные данные). Эта новая проблема решена.

Сейчас думаю как сделать querySelectorAll();
Там есть только Node:= Document.GetElementById('id элемента');

Node и Document в разделе var:
 Document: ICefDomDocument;
 Node: ICefDomNode;

Проблема в том что id у нужных элементов нет, а метода querySelectorAll как в WebBrowser не существует


TraderProg ©   (22.02.18 18:35[54]

Еще в Хромиуме работает такая команда:
code:='alert("Hello!");';
Chromium1.Browser.GetMainFrame.ExecuteJavaScript(code,'',0);

То есть исполнение яваскрипта заданного строкой. Только как выцедить сам яваскрипт, работающий при нажатии кнопки?
Это как вариант нажатия кнопок без использования DOM


TraderProg ©   (22.02.18 19:34[55]

Таак. Пол-дела можно сказать сделано. Разобрался как в TChromium нажать на кнопку.
Вот код:
procedure TForm1.Button4Click(Sender: TObject);
var
 CodeStr: string;
begin
  if Assigned(Chromium1.Browser) and Assigned(Chromium1.Browser.Mainframe) then
  begin
     CodeStr := 'document.querySelectorAll("#deal_controls > div > div.deal-form > div.state-block.js_tu_deal_buttons.deal-form__item.deal-form__risk-free > div > div > div.container.-up > button > span.text").item(0).click();';
     Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, 'about:blank', 0);
   end;
end;


TraderProg ©   (22.02.18 19:36[56]

Теперь надо понять как цену считывать в TChromium, Пока что проблема что Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, 'about:blank', 0) не возвращает элемент DOM чтобы прочитать innerHTML   ....


TraderProg ©   (22.02.18 20:44[57]

Похоже опять зашел в тупик. Думал вся сложность будет с нажатием кнопок, а нет получить innerHTML содержащую цену посредством процедуры ExecuteJavaScript вообще не знаю как. Иными словами ищем элемент DOM с помощью внутреннего javascript, а вот как у этого "встроенного" в javascript DOM-элемента получить строку innerHTML ? Да уж. загадка  (((

Всех читающих ветку с наступающим 23 февраля !!!


Styx ©   (22.02.18 21:17[58]

В CEF4Delphi есть пример работы с DOM


TraderProg ©   (22.02.18 22:16[59]

Styx, можешь сузить круг поиска в CEF4Delphi, где примерно искать, в контексте выше-приведенных задач?

У меня установлен CEF3Delphi (3-я версия), не знал что уже есть 4-ая.

В принципе только что решил и 2-ю проблему "костылями" посредством транслирования значения в консоль как в этом примере: http://www.cyberforum.ru/delphi-networks/thread1222757.html

Но может быть есть более элегантное решение? Был бы там доступен метод querySelectorAll непосредственно для Node, а также селекторы для класса и тэгов, была бы тогда вообще КРАСОТА.

Как мне в Delphi заменить 3-ю версию на 4-ую чтобы не возникло никаких ошибок?


Страницы: 1 2 3 4 версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо