Microsoft Excel

Herbers Excel/VBA-Archiv

Chrome-Browser steuern/ansprechen


Betrifft: Chrome-Browser steuern/ansprechen von: herje70
Geschrieben am: 18.09.2019 06:49:25

Hallo zusammen,

bisher rufe ich per VBA eine Webanwendung im IE auf und schreibe die Daten der Abfrage zur weiteren Verarbeitung in ein Tabellenblatt. Nun wird der Chrome bei uns der Standardbrowser und die Anwendung läuft in der neuen Version nur auf Chrome. Ich weiß nicht wie ich die Abfrage auf den Chrome anpassen muss. Hier mal der Codeschnipsel für den IE...

Wie/Was muss ich schreiben, damit ich auch mit Chrome an den Inhalt komme? Wie muss ich Chrome ansprechen?

VG Jens

Set IEApp = GetObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
IEApp.Visible = False
IEApp.Navigate strLink
Start = Now
Do: Loop Until IEApp.Busy = False
Do: Loop Until IEApp.Busy = False
Do
If DateDiff("s", Start, Now) > 30 Then Exit Do
Loop Until IEApp.ReadyState <> 4
Set IEDocument = IEApp.Document
zeilen = Split(IEDocument.body.innerText, vbCrLf)
For i = 0 To UBound(zeilen)
Cells(i + 1, 1) = zeilen(i)
Next
IEApp.Quit
Set IEDocument = Nothing
Set IEApp = Nothing

  

Betrifft: Nur zur Info von: 1713573.html
Geschrieben am: 18.09.2019 07:07:09

https://answers.microsoft.com/de-de/msoffice/forum/all/webseite-mit-vba-unter-google-chrome-auslesen/057fa34d-6530-4c06-b36b-7b520bb79349

zufällig gesehen...

  

Betrifft: AW: Nur zur Info von: 1713577.html
Geschrieben am: 18.09.2019 07:56:30

Hallo Pierre,
danke für die Verlinkung zum Googleforum, kannst du auch was zur Lösung meiner Frage beitragen?
VG Jens

  

Betrifft: AW: Nur zur Info von: 1713578.html
Geschrieben am: 18.09.2019 08:00:03

Hallo Jens,

sorry, nein, ich habe eben selbst mal danach gesucht (weshalb ich den Thread auch gefunden habe).
Hab dann nur für die anderen zur Info den Link gepostet.

Gruß Pierre

PS: Ich mach mal wieder offen...

  

Betrifft: AW: Nur zur Info von: 1713592.html
Geschrieben am: 18.09.2019 09:22:23

Hallo Jens,

die einzige Chance die ich sehe ist Selenium (www.seleniumhq.org). Ich habe damit früher Firefox per VBA angesteuert, aber das geht wohl seit irgendeinem Firefox-Update (auf Version 55?) nicht mehr. Wenn du Glück hast, kann Chrome vielleicht noch immer mit Selenium angesteuert werden.

Viele Grüße

Martin

  

Betrifft: AW: Nur zur Info von: 1713606.html
Geschrieben am: 18.09.2019 10:24:27

Hallo Martin,
danke für den Tipp, Selenium darf ich leider hier nicht einsetzen, aber privat kann ich das gut nutzen.
Ich dachte es wäre möglich Chrome genau so anzusprechen wie den IE, aber das wird wohl nichts...

VG Jens

  

Betrifft: AW: Nur zur Info von: 1713632.html
Geschrieben am: 18.09.2019 12:14:01

Den Chrome bekomme ich im Makro mit Shell() geöffnet und das Makro arbeitet weiter. Nun habe ich versucht nach der Shellanweisung mit SendKeys zu arbeiten, zuerst Send TAB (weil sich der Kursor in einer Eingabebox befindet), dann strg+A und strg+c um alles zu markieren und zu kopieren.
Nun hat aber der Chrome nicht den Focus und Sendkey funktioniert nicht.Hat jemand einen Tipp wie ich die SendKey-Anweisung an den Browser bekomme um die Daten zu kopieren und in Excel weiter zu verarbeiten?

VG Jens

  

Betrifft: AW: Nur zur Info von: 1713761.html
Geschrieben am: 18.09.2019 22:35:18

Hallo Jens,

also den Fokus auf Chrome zu legen ist wirklich das kleinste Problem. Mit API ist extrem viel möglich:
https://www.vbarchiv.net/tipps/tipp_2012-fensterhandle-anhand-der-titelzeile-ermitteln.html

Ich steuere mit API andere Anwendung ohne dabei überhaupt den Fokus auf die jeweilige Anwendung wechseln zu müssen. Im Gegensatz zur SendKeys-Methode ist API wesentlich zuverlässiger und schneller. Allerdings müssen dafür alle Controls der Anwendung eine eigene Handle-ID besitzen. Und genau hier liegt das Problem bei Browsern. Die dynamisch erzeugten Objekte in Websites haben keine eigenen Handle-IDs.

Der Internet Explorer wurde übrigens per VBA über die Objekt-Bibliothek angesprochen. Es gibt aber leider nur wenige "Nicht-Microsoft"-Anwendungen, die eine solche Objekt-Bibliothek anbieten. Auf Anhieb fällt mit hier gerade nur Adobe und PDF Creator ein.

Viele Grüße

Martin

  

Betrifft: AW: Nur zur Info von: 1713765.html
Geschrieben am: 18.09.2019 23:06:25

Hallo Jens,

mir ist gerade eingefallen, dass du mit der Shell-Funktion auch gleich den Fokus der Anwendung festlegen kannst (vbMaximizedFocus). Zudem gibt die Shellfunktion auch gleich die Handle-ID der Anwendung zurück. Also bequemer geht es ja fast nicht mehr ;-)

Viele Grüße

Martin

  

Betrifft: AW: Nur zur Info von: 1713779.html
Geschrieben am: 19.09.2019 08:02:34

Hallo Martin,

der Browser hat nun den Fokus. Hiermit rufe ich die Webseite auf und gleich danach schicke ich die Sendkeys:

Shell ("C:\Program Files (x86)\Google\Chrome\Application\chrome.exe -url " & strLink)
SendKeys "{TAB}"
SendKeys ("^A")
SendKeys ("^C")

funktioniert leider nicht. Tippe ich das auf der Tastatur, so habe ich meine gewünschten Daten in der Ablage.

Was mache ich denn falsch?