Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2018.07.15;
Скачать: CL | DM;

Вниз

Авторизация на сайте   Найти похожие ветки 

 
Кирилов. А.С.   (2016-07-10 12:18) [0]

Доброго времени! Нужен совет мастеров. Хочу сделать авторизацию в программе на сайте для чтения информации: https://order.utr.ua/
Работаю с компонентом Chromium в D2010 так:
var
login,pass,CodeStr:String;
begin
login:="mylogin";
pass:="mepass";
CodeStr := "document.getElementsByName("Login[username]").value=""+login+"";";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
CodeStr := "document.getElementsByName("Login[password]").value=""+pass+"";";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
CodeStr := "document.getElementsByClassName("big-red-button").click();";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
end;
Но данные для авторизации в поля не вносятся и отсылка не работает.. (( Что делаю не так?


 
Кирилов. А.С.   (2016-07-10 12:21) [1]

На других сайтах через getElementById работает без проблем, но на этом сайте
почему-то нет ID у нужных мне элементов.. ((


 
ухты ©   (2016-07-10 14:33) [2]

getElementsByName, по названию не видно что возвращает?


 
Кирилов. А.С.   (2016-07-10 14:42) [3]

Я по имени и пробую присвоить данные нужным полям,
Но не выходит.. (( почему? Как правильно сделать?


 
ухты ©   (2016-07-10 14:46) [4]

по имени вы получаете массив элементов, в названии метода s не просто так выделил


 
Кирилов. А.С.   (2016-07-10 14:55) [5]

CodeStr := "document.getElementByName("Login[username]").value=""+login+"";";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
тоже неработает.. ((


 
ухты ©   (2016-07-10 15:00) [6]

да при чем тут это?
getElementByName - не существует
getElementsByName - возвращает массив
т.о. getElementsByName(..)[0].value = ..;

тоже для getElementsByClassName
только убедится надо что в массиве есть то что вам надо
))


 
Кирилов. А.С.   (2016-07-10 15:10) [7]

Исправил, все работает теперь в таком виде:

var
login,pass,CodeStr:String;
begin
login:="mylogin";
pass:="mypass";
CodeStr := "document.getElementsByName("Login[username]")[0].value=""+login+"";";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
CodeStr := "document.getElementsByName("Login[password]")[0].value=""+pass+"";";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
CodeStr := "document.getElementsByClassName("big-red-button")[0].click();";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);
end;

Большое спасибо за полезные советы!!!


 
Кирилов. А.С.   (2016-07-10 15:12) [8]

Подозреваю что в связке с Chromium JavaScript пригодится еще не раз...
Что толкового можно почитать об этом? (сайты, книги, авторы)


 
ухты ©   (2016-07-10 15:18) [9]

зачем дергать постоянно? можно же просто одним куском выполнить
CodeStr := "document.getElementsByName("Login[username]")[0].value=""+login+"";";
CodeStr := CodeStr  + "document.getElementsByName("Login[password]")[0].value=""+pass+"";";
CodeStr := CodeStr  + "document.getElementsByClassName("big-red-button")[0].click();";
Chromium1.Browser.MainFrame.ExecuteJavaScript(CodeStr, "about:blank", 0);


 
Кирилов. А.С.   (2016-07-10 15:26) [10]

Хорошо, спасибо! Что посоветуете почитать для расширения кругозора JavaScript?


 
ухты ©   (2016-07-10 15:38) [11]

Да полно в сети литературы, уроков и т.п.
http://www.w3schools.com/Js/ вот тут для начала неплохо
https://ru.wikipedia.org/wiki/JavaScript тут вообще много чего


 
Кирилов. А.С.   (2016-07-10 15:39) [12]

Благодарствую...



Страницы: 1 вся ветка

Текущий архив: 2018.07.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.004 c
2-1468059789
Артеменко
2016-07-09 13:23
2018.07.15
Как получить ссылки в DIV?


15-1473682378
Тимохов Дима
2016-09-12 15:12
2018.07.15
Авторизация в вебсервисах


15-1473704029
andrd
2016-09-12 21:13
2018.07.15
Вопрос разработчикам Delphi для Android


15-1473745173
xayam
2016-09-13 08:39
2018.07.15
Посоветуйте программу для записи видео с экрана


2-1468142323
Кирилов. А.С.
2016-07-10 12:18
2018.07.15
Авторизация на сайте