Aus nicht nachvollziehbaren Gründen lässt sich die übliche Auslogurl (https://www.instagram.com/accounts/logout/) des Mediums Instagram nicht mehr in dem Automatismus verwerten. Bei Aufruf erscheint eine entsprechende Fehlermeldung. Dies hatte zur Folge, dass die Software „Instafinal“ angepasst werden musste, da eben die – in Reihe geschalteten Accounts – mit einem sauberen Logout / Login schlichtweg funktionsfähig gehalten werden.
Die Prozedur sieht so aus:
procedure TForm1.Button60Click(Sender: TObject);
var
ovElements_1, ovElements: OleVariant;
i,j: Integer;
begin
webbrowser1.Navigate(‚https://www.instagram.com/’+last_acc);
delay(5000);
pagecontrol1.ActivePage:=browser;
try
ovElements := WebBrowser1.OleObject.Document.all;
for i := 0 to (ovElements.Length – 1) do
if (ovElements.item(i).className = ‚_q8y0e coreSpriteMobileNavSettings _8scx2‘) then //be aware that it must be written with the exact case className
begin
try
ovElements.item(i).Click;
delay(1000);
ovElements_1 := WebBrowser1.OleObject.Document.all;
for j := 0 to (ovElements_1.Length – 1) do
begin
if (ovElements_1.item(j).classname = ‚_h74gn‘) then //be aware that it must be written with the exact case className
begin
if (ovelements_1.item(j).innertext=’Abmelden‘) then
begin
ovElements_1.item(j).Click;
end;
end;
end;
except
end;
end;
except
end;
end;
Zur Erklärung der Funktionen.
Bei Instagram existiert eine genau definierte Auslogprozedur, welche u.a. hier beschrieben wird. Dieser Weg lässt sich problemlos automatisieren, indem man via Rechtsklick -> Untersuchen eben die Buttonbezeichnungen erfasst. Der Name des „Zahnrades“ ist „_q8y0e coreSpriteMobileNavSettings _8scx2“ und der Klick wird via „ovElements.item(i).Click;“ ausgelöst. Nach der „Aktion“ öffnet sich eine Art Iframe und hier wird die weitere Vorgehensweise etwas komplizierter, da die Einstellungspunkte IMMER den Namen „_h74gn“ tragen und das Problem wird so gelöst, dass der eigentliche „Abmelden“-Klick erst dann ausgelöst wird, wenn das Listenelement mit „Abmelden“ als „innertext“ verbunden ist.
Diese Logout-Prozedur wird mit jedem Accountwechsel aktiviert und hier ist die Anweisung “ webbrowser1.Navigate(‚https://www.instagram.com/’+last_acc);“ besonders wichtig, da die Variable „last_acc“ eben den vorhergehenden Account beschreibt und nach Beendigung des Likedurchganges entsprechend befüllt wird.
Der Zeitaufwand zur Schaffung dieser Lösung betrug ca. 15 Minuten.