Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1836to1840
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Angabe Webdriverpfad Selenium

Angabe Webdriverpfad Selenium
16.07.2021 10:27:05
W.Stecher
Hallo,
ich habe folgenden Code, mit dem ich über Excel und Selenium Basic den Webbrowser Chrome öffne und eine Seite aufrufe. Das funktioniert auch wunderbar, solange der Webdriver im Ordner der Selenium Installation liegt (C:\Users\\AppData\Local\SeleniumBasic)
Ich suche eine Möglichkeit im Code anzugeben, dass die "chromedriver.exe" woanders liegt, beispielsweise "D:\WebDriverTest\chromedriver.exe", habe aber trotz intensiver Recherche bisher keine Möglichkeit gefunden, die funktioniert.

Public Function Browserautomation()
Dim Driver As New ChromeDriver
Driver.Start "Chrome"
Driver.Get "http://www.google.de" End Function
Folgendes habe ich schon probiert:

Driver.SetPreference "webdriver.chrome.driver", "D:\WebDriverTest\chromedriver.exe"
Driver.Start "Chrome"
Ich bekomme aber einen FileNotFoundError "C:\Users\\AppData\Local\SeleniumBasic\chromedriver.exe"
Kennt jemand eine Möglichkeit oder hat vielleicht einen Beispielcode?
Danke.

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Angabe Webdriverpfad Selenium
16.07.2021 14:02:55
Zwenn
Hallo,
soweit ich weiß, geht das nicht. Zur Installation von SeleniumBasic inklusive WebDriver habe ich mal folgendes geschrieben:

Entzippe das Archiv chromedriver_win32.zip und kopiere den WebDriver chromedriver.exe an die richtige Stelle.
Dafür gibt es zwei Möglichkeiten:
1. C:\Program Files\SeleniumBasic
2. C:\Users\%username%\AppData\Local\SeleniumBasic
Das ist ein Auszug aus diesem Posting (Selbst habe ich mein Wissen von StackOverflow):
https://www.herber.de/forum/cgi-bin/callthread.pl?index=1831729#1831851
Mir erschließt sich der Sinn auch nicht. Um das "ganze System" nutzen zu können, muss SeleniumBasic ja sowieso zwingend installiert werden.
Viele Grüße,
Zwenn
Anzeige
AW: Angabe Webdriverpfad Selenium
16.07.2021 14:32:30
W.Stecher
Hallo Zwenn,
doch das scheint zu gehen, denn mein Beispiel ".SetPreferences" mit Treiberdateiangabe findet sich für andere Programmiersprachen zu genüge im Netz. Wäre doch merkwürdig, wenn es nur bei VBA nicht funktionieren würde.
Der Sinn ist auch durchaus gegeben, wenn man von seinem privaten Umfeld einmal weggeht und der Betrieb in einem Citrix-Umfeld stattfindet, in dem zwar Selenium, aber nicht der Webdriver zur Verfügung gestellt werden kann, was aber interne, vertragliche Gründe hat. Die Treiber müssen zwingend woanders liegen.
Gruß
W.Stecher
AW: Angabe Webdriverpfad Selenium
16.07.2021 15:25:45
Zwenn
Nachdem ich jetzt etwas recherchiert habe, fällt mir folgendes dazu ein:
Deine Zeile,

Driver.SetPreference "webdriver.chrome.driver", "D:\WebDriverTest\chromedriver.exe"
kann nicht funktionieren, weil SetPreference(key, value) eine Methode des WebDrivers ist, was Du auch leicht im Object Explorer nachvollziehen kannst. Auf die kannst Du also erst zugreifen, wenn der WebDriver geladen ist. Da beißt sich die Katze in den Schwanz.
In Beispielen zu anderen Programmiersprachen habe ich bisher nur gesehen, dass z.B. Java, Kotlin und Python einen Bibliotheksimport verwenden, um den WebDriver einzubinden. Klar muss bekannt sein, wo die Bibliothek liegt, aber für VBA gibt es solche Mechanismen nur in Form der Verweise. Es gibt aber keine Möglichkeit einen Verweis auf einen der WebDriver zu setzen.
Kannst Du mr mal zeigen, wo Du Deine genannten Beispiele nachgelesen hast? Ich habe direkt auf der Selenum Seite nachgesehen, aber wie gesagt, sind die nicht für VBA "zuständig". Zu SeleniumBasic habe ich dazu bisher nix gefunden:
https://www.selenium.dev/documentation/de/webdriver/driver_requirements/
Anzeige
AW: Angabe Webdriverpfad Selenium
16.07.2021 15:54:34
Zwenn
Wie vermutet funktioniert es nicht über die Programmierung selbst. Es scheint nur zu gehen, wenn die Umgebungsvariable für Pfade angepasst wird. Darauf wird auch auf der zuletzt von mir verlinkten Seite eingegangen. Allerdings bezweifle ich, dass Du auf eine Systemvariable Zugriff bekommst, wenn schon die Nutzung eines bestimmten Ordners verweigert wird.
Auf SO hatte jemand die gleiche Frage und QHaar hat geantwortet. Da ich weiß, dass QHaar sehr erfahren im gesamten Thema WebScraping ist, vertraue ich darauf, dass die Aussage stimmt:
https://stackoverflow.com/questions/56344625/is-there-a-way-to-change-the-chromedriver-location-for-selenium-in-vba
Anzeige
AW: Angabe Webdriverpfad Selenium
16.07.2021 16:26:10
W.Stecher
Hallo Zwenn,
vielen Dank für Deine Beiträge und Dein Engagement.
Die Diskussion eine einmalige Veränderung der Umgebungsvariablen vorzunehmen, gehe ich gerne mit unserem IT-Dienstleister ein, wenn ich schon keine Möglichkeit habe, in der Programmierung eine Treiberdatei vorzugeben.
Allerdings mache ich entweder irgendetwas falsch oder ich verstehe es nicht richtig.
Ich habe auf meinem privaten PC in den Umgebumgsvariablen sowohl die Benutzervariable PATH als auch die Systemvariable PATH jeweils um "D:\WebDriverTest" erweitert. In diesem Ordner liegt auch die chromedriver.exe
Dennoch bringt mir mein Dreizeiler

Public Function Browserautomation()
Dim Driver As New ChromeDriver
Driver.Start "Chrome"
Driver.Get "http://www.google.de"
End Function
weiterhin den FileNotFoundError mit dem Pfad "C:\Users\\AppData\Local\SeleniumBasic\chromdriver.exe"
Es macht für mich nicht den Eindruck, als ob der in PATH hinzugefügte Ordner auch überprüft wird.
Anzeige
AW: Angabe Webdriverpfad Selenium
16.07.2021 17:11:27
Zwenn
Hallo,
ich kann das im Moment nicht selber testen. Hast Du den Rechner neu gestartet? Bin nicht sicher, ob das unter Win10 noch notwendig ist. Früher musste man das machen, damit die geänderte Variable neu eingelesen wird.
AW: Angabe Webdriverpfad Selenium
16.07.2021 17:29:36
W.Stecher
Danke für den Hinweis, ich hatte den PC zwar nicht neu gestartet, doch nach Deinem Hinweis habe ich es getan.
Ändert leider nichts daran, dass der Treiber nicht gefunden wird und der Error FileNotFound kommt.
AW: Angabe Webdriverpfad Selenium
16.07.2021 15:56:37
W.Stecher
Sorry, ich habe da in der Verzweiflung wohl etwas durcheinander geworfen, Deine Argumentation ist natürlich absolut schlüssig.
Das was ich im Netz gefunden habe (z.B. hier [nur für einen anderen Treiber]: https://www.softwaretestinghelp.com/geckodriver-selenium-tutorial/)
bezieht sich nicht auf den Treiber, sondern auf das System, also

System.setProperty("webdriver.chrome.driver","")
Da ich das jedoch nicht in VBA realisiert bekommen habe, habe ich wohl Alternativen gesucht und irgendwann den Wald vor lauter Bäumen nicht mehr gesehen.
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige