[Erledigt] Barclays VISA Abruf Abbruch - NoSuchElementException wegen englischer Seite

Hier gibt es Support zu den Plugin der neuesten Generation des Hibiscus-Mashup Projekts von Sebastian Richter
willimei
Beiträge: 5
Registriert: Do 22. Sep 2022, 10:13

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von willimei » Do 22. Sep 2022, 11:12

Hallo,
danke für die Screenshot Funktion. Das ist wirklich Gold wert!

Nach einem kurzen Blick auf den Screenshot ist der Fehler vermutlich recht klar: die gesamte Barclays Website ist auf Englisch, dementsprechend wird sicherlich auch das aria-label mit Übersetzt sein und erst recht die Dropdown Auswahl Felder…
Ich hab den Screenshot vom Auswahl Bereich mal zur Illustration an gehangen.

Mir würden spontan 2 Lösungen einfallen:
  1. den User Agent im Embedded Chromium explizit auf Deutsch setzen
  2. den User Agent im eigenen Browser so manipulieren, dass man die englischen Bezeichnungen herausfindet und zusätzlich ergänzt
Was ich spannend finde: mein Firefox hat keine deutsche Lokalisierung und der accept-language Header steht auf en-US,en;q=0.5, aber ich habe trotzdem immer eine deutsche Barclays Seite bekommen…
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

dassams
Beiträge: 17
Registriert: Fr 19. Aug 2022, 14:29

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von dassams » Do 22. Sep 2022, 11:32

Ich kann erst heute Abend oder morgen die Screenshots liefern.

Das mit der Sprache habe ich auch schon erwartet; aber dann abgetan, da ich eine deutsche Seite auf meinem (US-)englischen System bekommen, also so wie bei willimei.

willimei
Beiträge: 5
Registriert: Do 22. Sep 2022, 10:13

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von willimei » Do 22. Sep 2022, 14:35

Da ich aus der Netzwerktechnik komme, habe ich jetzt mal mit Debugging da angefangen wo ich mich aus kenne und einmal die Antworten von meinem Browser und dem Meshup Plugin in wireshark verglichen.

Es stellt sich raus, dass der headless chromium accept_language=en-US setzt, während mein nicht headless chromium en-US,en;q=0.9 setzt.
Wenn ich jetzt in meinem Firefox nur en-US einstelle, lässt sich das Verhalten der Website reproduzieren und ich bekomme das Online Banking auf englisch.

Hier einmal der Code von dem Date Selector Feld auf der Englischen Seite.

Code: Alles auswählen

<select _ngcontent-aaa-c30="" class="select2 select2-hidden-accessible" style="width: 100%;"
        aria-labelledby="DateRangeSelectorCombobox-label" id="select-DateRangeSelectorCombobox"
        aria-label="Period of time" tabindex="-1" aria-hidden="true"
        data-select2-id="select2-data-select-DateRangeSelectorCombobox">
    <option value="0" data-select2-id="select2-data-29-0000">Last 30 Days</option>
    <option value="1" data-select2-id="select2-data-30-0000">Since Last Statement Date</option>
    <option value="2" data-select2-id="select2-data-31-0000">Last 90 Days</option>
    <option value="3" data-select2-id="select2-data-32-0000">Last 180 Days</option>
    <option value="4" data-select2-id="select2-data-33-0000">Last Year</option>
    <option value="5" data-select2-id="select2-data-34-0000">Select Date Range</option>
</select>
Was noch fehlgeschlagen war ist der Logout, da du dort für die Bestätigung auf aria-label=Ja testest.
Hier mal noch der Ausschnitt dafür:

Code: Alles auswählen

<button _ngcontent-aaa-c33="" class="vc-btn--primary vc-btn" id="btn-NextButton" aria-label="Yes"><!----><span _ngcontent-aaa-c33="">Yes</span><!----></button>
Ansonsten hatte meine bisherige Recherche ergeben, dass das Setzen von des accept-language Headers beim Headless chromium wohl etwas verbuggt ist…
Siehe dazu:
https://makandracards.com/makandra/5021 ... t-possible
bzw.
https://bugs.chromium.org/p/chromium/is ... ?id=775911

In dem Software Entwicklung Teil steckst du aber sicherlich tiefer drin als ich und kannst da am besten Abschätzen auf welche Weise man das Problem umgeht.

dassams
Beiträge: 17
Registriert: Fr 19. Aug 2022, 14:29

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von dassams » Do 22. Sep 2022, 22:03

Hallo in die Runde - es klappt leider noch nicht.

Screenshot (zeigt englische Seite) und vollständiger Quelltext schicke ich aus Datenschutzgründen gleich als PM - sobald ich das Feature zum Header manipulieren richtig gesetzt bekomme...

Log:

Code: Alles auswählen

[22.09.2022 21:59:22] Synchronisierung via non-HBCI (Hibiscus Mashup) läuft
[22.09.2022 21:59:22]  
[22.09.2022 21:59:22] System-Info: OS[Linux (ver. 5.19.0-1-amd64) amd64]  Platform[Jameica 2.10.2 | Build: 484 vom 20220503]  Plugin[hibiscus 2.10.8 | Build: 370 vom 20220912]
[22.09.2022 21:59:22] Installierte und aktive Plugin-Versionen: [Finance.Websync ver. 0.9.42-nightly | Build: 850 vom 20220922] [Hibiscus Mashup ver. 0.9.25-nightly | Build: 508 vom 20220921]
[22.09.2022 21:59:22] Überprüfe Jameica-Version ...
[22.09.2022 21:59:22] OK: Jameica-Version 2.10.2 installiert und aktiv
[22.09.2022 21:59:22] Überprüfe Java-Version und den verwendeten Zeichensatz ...
[22.09.2022 21:59:22] OK: Java-Version 11.0.15 von 'Azul Systems, Inc.' installiert, aktiv und verwendet Zeichensatz 'UTF-8' (Home: /opt/jameica/javaruntime)
[22.09.2022 21:59:22] Überprüfe Selenium-Version ...
[22.09.2022 21:59:22] OK: Selenium-Version 4.3.0 installiert und aktiv
[22.09.2022 21:59:22] Überprüfe ChromeDriver-Version ...
[22.09.2022 21:59:22] OK: ChromeDriver-Version 105.0.5195.52 installiert und aktiv
[22.09.2022 21:59:22] Überprüfe POI-Version ...
[22.09.2022 21:59:22] OK: POI-Version 5.2.2 installiert und aktiv
[22.09.2022 21:59:22]  
[22.09.2022 21:59:22] Synchronisiere Konto 'Barclaycard - Kreditkarte, IBAN DE4120..115187 [Barclays Ba...urg Branch]' ...
[22.09.2022 21:59:22] Selenium WebDriver über ChromeDriver wird gestartet ...
[22.09.2022 21:59:24] Überprüfe Chrome-Version ...
[22.09.2022 21:59:24] OK. Browser ist: chrome ver. 105
[22.09.2022 21:59:26] Web-Login mit Selenium-WebDriver-Engine mit Anmeldekennung mark******* auf https://banking.barclaycard.de ...
[22.09.2022 21:59:52] Barclays-Visa-Login war erfolgreich
[22.09.2022 21:59:53] Rufe Umsatzübersicht auf und starte Abruf des Kontoauszuges ...
[22.09.2022 21:59:53] Suche Umsätze im Zeitraum vom 15.06.2022 bis 22.09.2022 und lese diese aus ...
[22.09.2022 22:00:02] INFO: Vom folgenden Fehler wurde ein Screenshot auf dem Desktop abgelegt! Datei: HibiscusMashup-Fehler_Barclays-Visa-Sync_1663876802612.png
[22.09.2022 22:00:45] Web-Logout der aktuellen Online-Sitzung ...
[22.09.2022 22:00:48] Warnung: Barclays-Visa-Logout war fehlerhaft; Bitte dem Entwickler im Forum melden!
[22.09.2022 22:00:48] Fehler: Exception beim Abrufen der Kontoumsätze: org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression (//select[contains(@id,'DateRangeSelector')]//option[contains(.,'Zeitraum') or contains(.,'Select Date Range)][last()] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '(//select[contains(@id,'DateRangeSelector')]//option[contains(.,'Zeitraum') or contains(.,'Select Date Range)][last()]' is not a valid XPath expression.
  (Session info: headless chrome=105.0.5195.125)
For documentation on this error, please visit: https://selenium.dev/exceptions/#invalid_selector_exception
Build info: version: '4.3.0', revision: 'a4995e2c09*'
System info: host: 'brick', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.19.0-1-amd64', java.version: '11.0.15'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [f1415841ec9b3a5af356ac696932fea9, findElement {using=xpath, value=(//select[contains(@id,'DateRangeSelector')]//option[contains(.,'Zeitraum') or contains(.,'Select Date Range)][last()]}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 105.0.5195.125, chrome: {chromedriverVersion: 105.0.5195.52 (412c95e51883..., userDataDir: /tmp/.com.google.Chrome.vIYckD}, goog:chromeOptions: {debuggerAddress: localhost:40981}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: Proxy(direct), se:cdp: ws://localhost:40981/devtoo..., se:cdpVersion: 105.0.5195.125, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: f1415841ec9b3a5af356ac696932fea9
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569)
	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:162)
	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:60)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:387)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:379)
	at de.derrichter.finance.websync.institute.barclaysvisa.WebPull.getTransData(WebPull.java:392)
	at de.derrichter.hibiscus.mashup.crossover.websync.institute.barclaysvisa.Collector.run(Collector.java:197)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeJobKontoauszug.execute(WebSynchronizeJobKontoauszug.java:84)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeBackend$WebSyncJobGroup.sync(WebSynchronizeBackend.java:855)
	at de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend$Worker.run(AbstractSynchronizeBackend.java:399)
	at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1081)


Tipp: Sollten Sie mit dieser Fehlermeldung nichts anfangen können,
kopieren Sie am besten gleich, mit einem Klick auf den 'Text kopieren'-Button, hier rechts in der Fensterleiste, den gesamten Inhalt dieser Status-Log und posten diesen im Support-Forum über
Menü Mashup->Online-Supportforum (https://scripting-forum.derrichter.de/viewforum.php?f=34)
in ein 'Neues Thema'. Damit kann Ihnen geholfen werden und Sie weisen uns darauf hin. Danke
Zuletzt geändert von dassams am Do 22. Sep 2022, 22:11, insgesamt 1-mal geändert.

dassams
Beiträge: 17
Registriert: Fr 19. Aug 2022, 14:29

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von dassams » Do 22. Sep 2022, 22:46

Wie per PM geschrieben, klemmt es hier nach wie vor (Screenshot und Quellcode als PM geschickt):

Code: Alles auswählen

[22.09.2022 22:42:40] Synchronisierung via non-HBCI (Hibiscus Mashup) läuft
[22.09.2022 22:42:40]  
[22.09.2022 22:42:40] System-Info: OS[Linux (ver. 5.19.0-1-amd64) amd64]  Platform[Jameica 2.10.2 | Build: 484 vom 20220503]  Plugin[hibiscus 2.10.8 | Build: 370 vom 20220912]
[22.09.2022 22:42:40] Installierte und aktive Plugin-Versionen: [Finance.Websync ver. 0.9.42-nightly | Build: 851 vom 20220922] [Hibiscus Mashup ver. 0.9.25-nightly | Build: 508 vom 20220921]
[22.09.2022 22:42:40] Überprüfe Jameica-Version ...
[22.09.2022 22:42:40] OK: Jameica-Version 2.10.2 installiert und aktiv
[22.09.2022 22:42:40] Überprüfe Java-Version und den verwendeten Zeichensatz ...
[22.09.2022 22:42:40] OK: Java-Version 11.0.15 von 'Azul Systems, Inc.' installiert, aktiv und verwendet Zeichensatz 'UTF-8' (Home: /opt/jameica/javaruntime)
[22.09.2022 22:42:40] Überprüfe Selenium-Version ...
[22.09.2022 22:42:40] OK: Selenium-Version 4.3.0 installiert und aktiv
[22.09.2022 22:42:40] Überprüfe ChromeDriver-Version ...
[22.09.2022 22:42:40] OK: ChromeDriver-Version 105.0.5195.52 installiert und aktiv
[22.09.2022 22:42:40] Überprüfe POI-Version ...
[22.09.2022 22:42:40] OK: POI-Version 5.2.2 installiert und aktiv
[22.09.2022 22:42:40]  
[22.09.2022 22:42:40] Synchronisiere Konto 'Barclaycard - Kreditkarte, IBAN DE4120..115187 [Barclays Ba...urg Branch]' ...
[22.09.2022 22:42:40] Selenium WebDriver über ChromeDriver wird gestartet ...
[22.09.2022 22:42:41] Überprüfe Chrome-Version ...
[22.09.2022 22:42:41] OK. Browser ist: chrome ver. 105
[22.09.2022 22:42:43] Web-Login mit Selenium-WebDriver-Engine mit Anmeldekennung mark******* auf https://banking.barclaycard.de ...
[22.09.2022 22:43:07] Barclays-Visa-Login war erfolgreich
[22.09.2022 22:43:07] Rufe Umsatzübersicht auf und starte Abruf des Kontoauszuges ...
[22.09.2022 22:43:07] Suche Umsätze im Zeitraum vom 15.06.2022 bis 22.09.2022 und lese diese aus ...
[22.09.2022 22:43:17] INFO: Vom folgenden Fehler wurde ein Screenshot auf dem Desktop abgelegt! Datei: HibiscusMashup-Fehler_Barclays-Visa-Sync_1663879397212.png
[22.09.2022 22:43:19] Web-Logout der aktuellen Online-Sitzung ...
[22.09.2022 22:43:22] Warnung: Barclays-Visa-Logout war fehlerhaft; Bitte dem Entwickler im Forum melden!
[22.09.2022 22:43:22] Fehler: Exception beim Abrufen der Kontoumsätze: org.openqa.selenium.InvalidSelectorException: invalid selector: Unable to locate an element with the xpath expression (//select[contains(@id,'DateRangeSelector')]//option[contains(.,'Zeitraum') or contains(.,'Select Date Range)])[last()] because of the following error:
SyntaxError: Failed to execute 'evaluate' on 'Document': The string '(//select[contains(@id,'DateRangeSelector')]//option[contains(.,'Zeitraum') or contains(.,'Select Date Range)])[last()]' is not a valid XPath expression.
  (Session info: headless chrome=105.0.5195.125)
For documentation on this error, please visit: https://selenium.dev/exceptions/#invalid_selector_exception
Build info: version: '4.3.0', revision: 'a4995e2c09*'
System info: host: 'brick', ip: '127.0.1.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.19.0-1-amd64', java.version: '11.0.15'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [a3f7ac32ec666ec1d75a6f68f2effb1e, findElement {using=xpath, value=(//select[contains(@id,'DateRangeSelector')]//option[contains(.,'Zeitraum') or contains(.,'Select Date Range)])[last()]}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 105.0.5195.125, chrome: {chromedriverVersion: 105.0.5195.52 (412c95e51883..., userDataDir: /tmp/.com.google.Chrome.zghwTV}, goog:chromeOptions: {debuggerAddress: localhost:46293}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: Proxy(direct), se:cdp: ws://localhost:46293/devtoo..., se:cdpVersion: 105.0.5195.125, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: a3f7ac32ec666ec1d75a6f68f2effb1e
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569)
	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:162)
	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:60)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:387)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:379)
	at de.derrichter.finance.websync.institute.barclaysvisa.WebPull.getTransData(WebPull.java:392)
	at de.derrichter.hibiscus.mashup.crossover.websync.institute.barclaysvisa.Collector.run(Collector.java:197)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeJobKontoauszug.execute(WebSynchronizeJobKontoauszug.java:84)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeBackend$WebSyncJobGroup.sync(WebSynchronizeBackend.java:855)
	at de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend$Worker.run(AbstractSynchronizeBackend.java:399)
	at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1081)


Tipp: Sollten Sie mit dieser Fehlermeldung nichts anfangen können,
kopieren Sie am besten gleich, mit einem Klick auf den 'Text kopieren'-Button, hier rechts in der Fensterleiste, den gesamten Inhalt dieser Status-Log und posten diesen im Support-Forum über
Menü Mashup->Online-Supportforum (https://scripting-forum.derrichter.de/viewforum.php?f=34)
in ein 'Neues Thema'. Damit kann Ihnen geholfen werden und Sie weisen uns darauf hin. Danke
PS: Unter Chrome/Chromium kann man mit der Extension ModHeader den Request Header manipulieren, falls das jemand ausprobieren will. Man muss auf Groß-/Kleinschreibung achten, korrekt heißt es dann "Accept-Language" auf "en-US" und dann kommt die Barclay Seite schon auf engl. angeflogen.

Benutzeravatar
Hibiscus-Scripter
Administrator
Administrator
Beiträge: 2150
Registriert: Mi 30. Okt 2013, 17:14
Wohnort: Würzburg

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von Hibiscus-Scripter » Do 22. Sep 2022, 22:56

@dassams: danke für deine Geduld :P
Sorry, mein Fehler, da war noch ein zweiter :-o Vertipper drin :shifty:
willimei hat geschrieben:
Do 22. Sep 2022, 11:12
Mir würden spontan 2 Lösungen einfallen:
den User Agent im Embedded Chromium explizit auf Deutsch setzen
Das ist natürlich gesetzt, aber wie von dir gezeigt wohl verbugt im Headless-Mode.

Aber super, danke für die tolle Analyse :clap:

Hab jetzt mal die auch die englische Variante des Selektor-Eintrags mit eingebaut, obwohl das ja die Ganze Zeit auch so funktioniert hatte :-(
Was jetzt aber wohl noch fehlt ist der englische Text für wenn ein Zeitraum gewählt wurde "ohne Umsätze"
und zwar: "Leider keine Treffer" <-- Bitte die Suche in der englischen Seite so einschränken, dass dieser Text erscheint.

Am besten es schickt mir mal bitte jemand den gesamten Original-Code aus dem Inspector vom ganzen Body.

Gerne mal mit den aktuellen Nightly-Builds von
  • finance.websync
  • hibiscus.mashup
ausprobieren, in welcher die Fehler behoben sein sollten.
:idea: Hilfe hierzu gibst wie immer auch im Tipps und Tricks-Forum


Hier dann bitte auch wieder Rückmeldung geben!
:!: Dabei bitte nicht vergessen:
Sollten dennoch weiterhin Fehler auftreten hier das vollständige Status-Log posten!
(formatiert wie in den Posting-Regeln beschrieben)


Gruß :wave:

Gute Nacht :!!

willimei
Beiträge: 5
Registriert: Do 22. Sep 2022, 10:13

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von willimei » Fr 23. Sep 2022, 09:27

Hibiscus-Scripter hat geschrieben:
Do 22. Sep 2022, 22:56

Hab jetzt mal die auch die englische Variante des Selektor-Eintrags mit eingebaut, obwohl das ja die Ganze Zeit auch so funktioniert hatte :-(
Super, vielen Dank! Der Abruf funktioniert jetzt bei mir.

Ich vermute mal, dass bei Barclays sowieso eine englische Variante der Seite für andere Märkte herum liegt und die jetzt aus welchen Gründen auch immer auch auf dem deutschen Webserver deployed wurde…aber genau kann das wohl nur deren Webentwicklungs Team beantworten.
Was ich spannend finde: es wird dabei tatsächlich die gesamte Applikation Übersetzt. Selbst die TAN SMS ist jetzt auf Englisch. Hoffen wir mal dass die nicht direkt auf dem Webserver generiert wird…
Hibiscus-Scripter hat geschrieben:
Do 22. Sep 2022, 22:56
Was jetzt aber wohl noch fehlt ist der englische Text für wenn ein Zeitraum gewählt wurde "ohne Umsätze"
und zwar: "Leider keine Treffer" <-- Bitte die Suche in der englischen Seite so einschränken, dass dieser Text erscheint.

Am besten es schickt mir mal bitte jemand den gesamten Original-Code aus dem Inspector vom ganzen Body.
Ich hab dir die Seite eben einmal per PN geschickt.
Der Text für die englische Seite ist "No results found!"

Noch kaputt ist der Logout, da dort nach Ja statt Yes gesucht wird:

Code: Alles auswählen

[23.09.2022 08:53:36] Synchronisierung via non-HBCI (Hibiscus Mashup) läuft
[23.09.2022 08:53:36]  
[23.09.2022 08:53:36] System-Info: OS[Linux (ver. 5.19.3-arch1-1) amd64]  Platform[Jameica 2.10.2 | Build: 484 vom 20220503]  Plugin[hibiscus 2.10.7 | Build: 369 vom 20220621]
[23.09.2022 08:53:36] Installierte und aktive Plugin-Versionen: [Finance.Websync ver. 0.9.42-nightly | Build: 852 vom 20220922] [Hibiscus Mashup ver. 0.9.25-nightly | Build: 508 vom 20220921]
[23.09.2022 08:53:36] Überprüfe Jameica-Version ...
[23.09.2022 08:53:36] OK: Jameica-Version 2.10.2 installiert und aktiv
[23.09.2022 08:53:36] Überprüfe Java-Version und den verwendeten Zeichensatz ...
[23.09.2022 08:53:36] OK: Java-Version 1.8.0_345 von 'Oracle Corporation' installiert, aktiv und verwendet Zeichensatz 'UTF-8' (Home: /usr/lib/jvm/java-8-openjdk/jre)
[23.09.2022 08:53:36] Überprüfe Selenium-Version ...
[23.09.2022 08:53:36] OK: Selenium-Version 4.3.0 installiert und aktiv
[23.09.2022 08:53:36] Überprüfe ChromeDriver-Version ...
[23.09.2022 08:53:36] OK: ChromeDriver-Version 105.0.5195.52 installiert und aktiv
[23.09.2022 08:53:36] Überprüfe POI-Version ...
[23.09.2022 08:53:36] OK: POI-Version 5.2.2 installiert und aktiv
[23.09.2022 08:53:36]  
[23.09.2022 08:53:36] Synchronisiere Konto 'Barclays-Visa - Kreditkarte, IBAN DE5020..00 [Barclays Ba...urg Branch]' ...
[23.09.2022 08:53:36] Selenium WebDriver über ChromeDriver wird gestartet ...
[23.09.2022 08:53:37] -> Erst-Initialisierung des WebDriver nicht erfolgreich, der Start dauert daher länger:
[23.09.2022 08:53:37] Hinweis: Chrome/Chromium liegt in einer nicht kompatiblen Version vor (Fehler: Could not start a new session. Response code 500. Message: session not created: This version of ChromeDriver only supports Chrome version 105) ...
[23.09.2022 08:53:37] ... daher wird nun der automatisch nachgeladene Chromium verwendet ... (dieser wird wieder entfernt wenn Chrome in einer kompatiblen Version gefunden wird!)
[23.09.2022 08:53:37] Sicherheits-Check der Integrität des alternativen Chromium-Browser gegen Manipulation ...
[23.09.2022 08:53:41] OK. Ergebnis der Berechnung: 30495F58FD00872666EDEF4CAA745FA1 (Dauer: 3 Sek.)
[23.09.2022 08:53:41] Überprüfe Chromium-Version ...
[23.09.2022 08:53:41] OK. Browser ist: chrome ver. 105
[23.09.2022 08:53:43] Web-Login mit Selenium-WebDriver-Engine mit Anmeldekennung ******* auf https://banking.barclaycard.de ...
[23.09.2022 08:54:03] Barclays-Visa-Login war erfolgreich
[23.09.2022 08:54:03] Rufe Umsatzübersicht auf und starte Abruf des Kontoauszuges ...
[23.09.2022 08:54:03] Suche Umsätze im Zeitraum vom 09.09.2022 bis 23.09.2022 und lese diese aus ...
[23.09.2022 08:54:48] Web-Logout der aktuellen Online-Sitzung ...
[23.09.2022 08:54:51] Warnung: Barclays-Visa-Logout war fehlerhaft; Bitte dem Entwickler im Forum melden!
[23.09.2022 08:54:51] Kontoauszug erfolgreich. Importiere Daten ...
[23.09.2022 08:54:51] Ergebnis des Sync: Keine neuen Umsätze vorhanden
[23.09.2022 08:54:51] Saldo aktualisiert von Konto: Barclays-Visa - Kreditkarte
[23.09.2022 08:54:51] Das Konto 'Barclays-Visa - Kreditkarte, IBAN DE5020..00 [Barclays Ba...urg Branch]' wurde erfolgreich synchronisiert
[23.09.2022 08:54:51] Synchronisierung via non-HBCI (Hibiscus Mashup) erfolgreich beendet
Da der Fehler im Plugin Log unterdrückt wird hier nochmal die Zeile mit dem Fehler im globalen Log:

Code: Alles auswählen

Logout fehlerhaft; Bitte dem Entwickler im Forum melden!WebDriver-Fehler: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"button[id=btn-NextButton][aria-label=Ja]"}
  (Session info: headless chrome=105.0.5195.0)
For documentation on this error, please visit: https://selenium.dev/exceptions/#no_such_element
Build info: version: '4.3.0', revision: 'a4995e2c09*'
System info: host: 'pollux', ip: '192.168.121.1', os.name: 'Linux', os.arch: 'amd64', os.version: '5.19.3-arch1-1', java.version: '1.8.0_345'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Command: [e373c78f124b7474d8ad6f7fb951bb23, findElement {using=css selector, value=button[id=btn-NextButton][aria-label=Ja]}]
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 105.0.5195.0, chrome: {chromedriverVersion: 105.0.5195.52 (412c95e51883..., userDataDir: /tmp/.com.google.Chrome.pPJMnp}, goog:chromeOptions: {debuggerAddress: localhost:43973}, networkConnectionEnabled: false, pageLoadStrategy: normal, platformName: LINUX, proxy: Proxy(direct), se:cdp: ws://localhost:43973/devtoo..., se:cdpVersion: 105.0.5195.0, setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:extension:credBlob: true, webauthn:extension:largeBlob: true, webauthn:virtualAuthenticators: true}
Session ID: e373c78f124b7474d8ad6f7fb951bb23
	at sun.reflect.GeneratedConstructorAccessor29.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:200)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:133)
	at org.openqa.selenium.remote.codec.w3c.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:53)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:184)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:167)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:142)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:569)
	at org.openqa.selenium.remote.ElementLocation$ElementFinder$2.findElement(ElementLocation.java:162)
	at org.openqa.selenium.remote.ElementLocation.findElement(ElementLocation.java:60)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:387)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:379)
	at de.derrichter.finance.websync.institute.barclaysvisa.WebAuth.logoutWithSelenium(WebAuth.java:354)
	at de.derrichter.hibiscus.mashup.crossover.websync.institute.barclaysvisa.Collector.run(Collector.java:277)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeJobKontoauszug.execute(WebSynchronizeJobKontoauszug.java:84)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeBackend$WebSyncJobGroup.sync(WebSynchronizeBackend.java:855)
	at de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend$Worker.run(AbstractSynchronizeBackend.java:399)
	at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1081)

dassams
Beiträge: 17
Registriert: Fr 19. Aug 2022, 14:29

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von dassams » Fr 23. Sep 2022, 09:28

Juhu, es lief erstmal durch. :thumbup:
Es kam auch wieder die die SMS-OTP Abfrage (2 Faktor, die im normalen Browser nie kommt).

Ich habe mal einen Filter gesetzt um keine Umsätze zu bekommen. Das ging aber nicht nur über den Zeitraum, sondern benötigte aktuell noch ein Suchbegriff (der nichts findet); reservierte Beträge werden nämlich immer, unabhängig vom Date-Range-Filter angezeigt.

Zum Thema Logout hat mein Vorposter ja schon den Fehler beschrieben. (Hat sich gerade überschnitten)

Der body-Sourcecode wieder im Anhang (zu groß zum Posten).

Benutzeravatar
Hibiscus-Scripter
Administrator
Administrator
Beiträge: 2150
Registriert: Mi 30. Okt 2013, 17:14
Wohnort: Würzburg

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von Hibiscus-Scripter » Fr 23. Sep 2022, 20:11

So, danke für die tolle Mitarbeit und eure Mühe :thumbup:
Nur nicht solch einen Code hier öffentlich posten :shock:

Hoffentlich passt's jetzt :shifty:

Gerne mal mit den aktuellen Nightly-Builds von
  • finance.websync
  • hibiscus.mashup
ausprobieren, in welcher die Fehler behoben sein sollten.
:idea: Hilfe hierzu gibst wie immer auch im Tipps und Tricks-Forum


Hier dann bitte auch wieder Rückmeldung geben!
:!: Dabei bitte nicht vergessen:
Sollten dennoch weiterhin Fehler auftreten hier das vollständige Status-Log posten!
(formatiert wie in den Posting-Regeln beschrieben)


Gruß :wave:

dassams
Beiträge: 17
Registriert: Fr 19. Aug 2022, 14:29

Re: Barclays VISA Abruf Abbruch - org.openqa.selenium.NoSuchElementException

Beitrag von dassams » Fr 23. Sep 2022, 23:14

Vielen Dank für die ganzen Skripte und den Support :clap:
Lernfrage: Was war in dem geposteten Body-Source Code kritisches/persönliches drin, was man besser nicht öffentlich postet? :think:
(Session IDs und Co müssten doch abgelaufen sein, oder?)

Zurück zu „Hibiscus Mashup über Finance.Websync - (Beta 0.x = neue Release 3 der alten Scripte)“