Форум: "Начинающим";
Текущий архив: 2018.07.15;
Скачать: [xml.tar.bz2];
ВнизАвторизация на сайте Найти похожие ветки
← →
Кирилов. А.С. (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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c