Selenium + VBA zur Steuerung von Chrome
Ich verwende Selen + VBA, um Chrome zu starten und 10 URLs zu öffnen, die im Zellbereich aufgeführt sind ("A1: A10"). Ich kenne mich mit Selen nicht aus, nachdem ich viele Male versucht habe, endlich unter klobigen Codes herauszukommen.
Private selenium As New ChromeDriver
Sub test()
Dim cell As Range
Dim keys As New selenium.keys
Dim pageNo As Integer
pageNo = 0
selenium.Start "chrome", "http://www.google.com/"
For Each cell In Range("A1:A10")
If pageNo >= 1 Then
selenium.SendKeys keys.Control & "t" + keys.Control & "t"
selenium.SwitchToNextWindow
End If
selenium.Get cell.Value
pageNo = pageNo + 1
Next
End Sub
Mehrere Probleme und Fragen:
Ich bin verwirrt, warum ich zweimal "Strg + t" drücken muss, um einen neuen Tab erfolgreich zu öffnen.
Warum muss ich nach dem Öffnen eines neuen Tabs Selen hinzufügen.SwitchToNextWindow, oder die nächste URL wird auf dem ursprünglichen Tab geöffnet, nicht auf dem neuen Tab?
Sehr oft nach dem Öffnen von 3 ~ 5 URLs zeigt VBA den Fehler "Nicht genügend Speicher" an und stoppt das Laden der nächsten URL. Wenn ich die Codes jedoch Zeile für Zeile in der Debugging-Umgebung ausführe, können alle 10 URLs erfolgreich geöffnet werden. Warum ist das
Ich habe gegoogelt, dass ich, wenn ich möchte, dass Chrome nach dem Ausführen des Makros nicht beendet wird, Objektselen außerhalb des U-Bootes deklarieren muss, obwohl ich den Grund nicht ganz verstehe. Könnte jemand helfen, mich auf einfache Weise zu erklären?
Wenn mir Experten bei der Optimierung meiner Codes helfen können, wäre das sehr dankbar! Mein System ist Win7 64bit + Excel 2010.
Danke mit besten Grüßen