[Geschlossen nach Upgrade] Fehler: Web-Login mit Selenium-WebDriver fehlgeschlagen!

Hier gibt es Support zu den Plugin der neuesten Generation des Hibiscus-Mashup Projekts von Sebastian Richter
koepper
Beiträge: 2
Registriert: Do 17. Okt 2019, 17:46

[Geschlossen nach Upgrade] Fehler: Web-Login mit Selenium-WebDriver fehlgeschlagen!

Beitrag von koepper » So 11. Okt 2020, 15:05

Fehler beim Setzen des Login-Formulars oder der Felder - siehe Log

Der Driver findet offenbar ein erwartetes Feld nicht. Hat sich die Homepage von AmEx vielleicht geändert und das scripting ist noch nicht angepasst oder habe nur ich das Problem?

Code: Alles auswählen

[11.10.2020 14:54:51] Synchronisierung via non-HBCI (Hibiscus Mashup) läuft
[11.10.2020 14:54:51]  
[11.10.2020 14:54:51] System-Info: OS[Windows 10 (ver. 10.0) amd64]  Platform[Jameica 2.8.4 | Build: 453 vom 20190211]  Plugin[hibiscus 2.8.24 | Build: 388 vom 20200708]
[11.10.2020 14:54:51] Installierte und aktive Plugin-Versionen: [Finance.Websync ver. 0.9.10 | Build: 564 vom 20200224] [Hibiscus Mashup ver. 0.9.10 | Build: 372 vom 20200224]
[11.10.2020 14:54:51] Überprüfe Java-Version und den verwendeten Zeichensatz ...
[11.10.2020 14:54:51] OK: Java-Version 1.8.0_231 von 'Oracle Corporation' installiert, aktiv und verwendet Zeichensatz 'Cp1252' (Home: C:\Program Files\Java\jre1.8.0_231)
[11.10.2020 14:54:51] Überprüfe Selenium-Version ...
[11.10.2020 14:54:51] OK: Selenium-Version 3.141.59 installiert und aktiv
[11.10.2020 14:54:51] Überprüfe ChromeDriver-Version ...
[11.10.2020 14:54:51] OK: ChromeDriver-Version 86.0.4240.22 installiert und aktiv
[11.10.2020 14:54:51]  
[11.10.2020 14:54:51] Synchronisiere Konto 'Payback-Amex-Will, IBAN DE0550..xxxxxx [Deutsche Bank Filiale]' ...
[11.10.2020 14:54:54] Überprüfe Chromium-Version ...
[11.10.2020 14:54:54] OK. Browser ist: chrome ver. 86
[11.10.2020 14:54:58] Web-Login mit Selenium-WebDriver-Engine mit Anmeldekennung koep******* auf https://global.americanexpress.com/myca/logon/emea/action?request_type=LogonHandler&Face=de_DE&inav=iNLogBtn ...
[11.10.2020 14:55:43] Fehler: Web-Login mit Selenium-WebDriver fehlgeschlagen! Fehler beim Setzen des Login-Formulars oder der Felder (siehe Log - Bitte den Entwickler im Forum informieren)
Log-Eintrag: org.openqa.selenium.TimeoutException: Expected condition failed: waiting for presence of element located by: By.name: UserID (tried for 30 second(s) with 500 milliseconds interval)
	at org.openqa.selenium.support.ui.WebDriverWait.timeoutException(WebDriverWait.java:95)
	at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:272)
	at de.derrichter.finance.websync.institute.americanexpress.WebAuth.loginWithSelenium(WebAuth.java:104)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at de.derrichter.hibiscus.mashup.crossover.interact.Auth.seleniumLogin(Auth.java:324)
	at de.derrichter.hibiscus.mashup.crossover.websync.institute.americanexpress.Collector.run(Collector.java:170)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeJobKontoauszug.execute(WebSynchronizeJobKontoauszug.java:74)
	at de.derrichter.hibiscus.mashup.crossover.websync.WebSynchronizeBackend$WebSyncJobGroup.sync(WebSynchronizeBackend.java:619)
	at de.willuhn.jameica.hbci.synchronize.AbstractSynchronizeBackend$Worker.run(AbstractSynchronizeBackend.java:407)
	at de.willuhn.jameica.gui.GUI$7.run(GUI.java:1060)
Caused by: org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element: {"method":"css selector","selector":"*[name='UserID']"}
  (Session info: headless chrome=86.0.4240.75)
For documentation on this error, please visit: https://www.seleniumhq.org/exceptions/no_such_element.html
Build info: version: '3.141.59', revision: 'e82be7d358', time: '2018-11-14T08:25:48'
System info: host: 'M503', ip: '192.168.0.61', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_231'
Driver info: org.openqa.selenium.chrome.ChromeDriver
Capabilities {acceptInsecureCerts: false, browserName: chrome, browserVersion: 86.0.4240.75, chrome: {chromedriverVersion: 86.0.4240.22 (398b0743353ff..., userDataDir: C:\Users\koepper\AppData\Lo...}, goog:chromeOptions: {debuggerAddress: localhost:59660}, javascriptEnabled: true, networkConnectionEnabled: false, pageLoadStrategy: normal, platform: WINDOWS, platformName: WINDOWS, proxy: Proxy(direct), setWindowRect: true, strictFileInteractability: false, timeouts: {implicit: 0, pageLoad: 300000, script: 30000}, unhandledPromptBehavior: dismiss and notify, webauthn:virtualAuthenticators: true}
Session ID: a3578e741da9b9d0643f9b7c9f2f2291
*** Element info: {Using=name, value=UserID}
	at sun.reflect.GeneratedConstructorAccessor28.newInstance(Unknown Source)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.lang.reflect.Constructor.newInstance(Unknown Source)
	at org.openqa.selenium.remote.http.W3CHttpResponseCodec.createException(W3CHttpResponseCodec.java:187)
	at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:122)
	at org.openqa.selenium.remote.http.W3CHttpResponseCodec.decode(W3CHttpResponseCodec.java:49)
	at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:158)
	at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:83)
	at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:552)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:323)
	at org.openqa.selenium.remote.RemoteWebDriver.findElementByName(RemoteWebDriver.java:404)
	at org.openqa.selenium.By$ByName.findElement(By.java:284)
	at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:315)
	at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:182)
	at org.openqa.selenium.support.ui.ExpectedConditions$6.apply(ExpectedConditions.java:179)
	at org.openqa.selenium.support.ui.FluentWait.until(FluentWait.java:249)
	... 11 more
EDIT: Hier ist der chromedriver-log am Ende, wo der Fehler auftritt

Code: Alles auswählen

[1602420941.218][INFO]: Done waiting for pending navigations. Status: ok
[1602420941.218][INFO]: [a3578e741da9b9d0643f9b7c9f2f2291] RESPONSE FindElement ERROR no such element: Unable to locate element: {"method":"css selector","selector":"*[name='UserID']"}
  (Session info: headless chrome=86.0.4240.75)
[1602420941.721][INFO]: [a3578e741da9b9d0643f9b7c9f2f2291] COMMAND FindElement {
   "using": "css selector",
   "value": "*[name='UserID']"
}
[1602420941.721][INFO]: Waiting for pending navigations...
[1602420941.721][DEBUG]: DevTools WebSocket Command: Runtime.evaluate (id=308) 90E3FC7E58384926EB8B72DE448444F1 {
   "expression": "1"
}
[1602420941.722][DEBUG]: DevTools WebSocket Response: Runtime.evaluate (id=308) 90E3FC7E58384926EB8B72DE448444F1 {
   "result": {
      "description": "1",
      "type": "number",
      "value": 1
   }
}
[1602420941.722][INFO]: Done waiting for pending navigations. Status: ok
[1602420941.724][DEBUG]: DevTools WebSocket Command: Runtime.evaluate (id=309) 90E3FC7E58384926EB8B72DE448444F1 {
   "awaitPromise": true,
   "expression": "(function() { // Copyright (c) 2012 The Chromium Authors. All rights reserved.\n// Use of this source code is governed by a BSD-style license that can be\n// found in the LICENSE file.\n\n/**\n * Enum f...",
   "returnByValue": true
}
[1602420941.727][DEBUG]: DevTools WebSocket Response: Runtime.evaluate (id=309) 90E3FC7E58384926EB8B72DE448444F1 {
   "result": {
      "type": "object",
      "value": {
         "status": 0,
         "value": null
      }
   }
}
[1602420941.727][DEBUG]: DevTools WebSocket Command: Runtime.evaluate (id=310) 90E3FC7E58384926EB8B72DE448444F1 {
   "expression": "1"
}
[1602420941.728][DEBUG]: DevTools WebSocket Response: Runtime.evaluate (id=310) 90E3FC7E58384926EB8B72DE448444F1 {
   "result": {
      "description": "1",
      "type": "number",
      "value": 1
   }
}
[1602420941.728][INFO]: Waiting for pending navigations...
[1602420941.728][DEBUG]: DevTools WebSocket Command: Runtime.evaluate (id=311) 90E3FC7E58384926EB8B72DE448444F1 {
   "expression": "1"
}
[1602420941.729][DEBUG]: DevTools WebSocket Response: Runtime.evaluate (id=311) 90E3FC7E58384926EB8B72DE448444F1 {
   "result": {
      "description": "1",
      "type": "number",
      "value": 1
   }
}
[1602420941.729][INFO]: Done waiting for pending navigations. Status: ok
[1602420941.729][INFO]: [a3578e741da9b9d0643f9b7c9f2f2291] RESPONSE FindElement ERROR no such element: Unable to locate element: {"method":"css selector","selector":"*[name='UserID']"}
  (Session info: headless chrome=86.0.4240.75)
[1602420942.834][INFO]: [a3578e741da9b9d0643f9b7c9f2f2291] COMMAND Quit {

}
[1602420942.867][INFO]: [a3578e741da9b9d0643f9b7c9f2f2291] RESPONSE Quit
[1602420942.867][DEBUG]: Log type 'driver' lost 0 entries on destruction
[1602420942.867][DEBUG]: Log type 'browser' lost 8 entries on destruction
Wenn ich die HTML-Seite für den Login bei AmEx im Inspektor untersuche, dann sehe ich, dass das betreffende HTML input-Element die id="eliloUserID" hat. Ein name-Attribut finde ich nicht.
Etwas Unterstützung wäre nett.
LG

gochbewohner
Beiträge: 55
Registriert: Mi 10. Jun 2015, 13:23

Re: Fehler: Web-Login mit Selenium-WebDriver fehlgeschlagen!

Beitrag von gochbewohner » So 11. Okt 2020, 19:35

Du solltest zuerst mal deine Installation auf den aktuellen Stand bringen:

Code: Alles auswählen

11.10.2020 19:30:12] Synchronisierung via non-HBCI (Hibiscus Mashup) läuft
[11.10.2020 19:30:12]  
[11.10.2020 19:30:12] System-Info: OS[Windows 10 (ver. 10.0) amd64]  Platform[Jameica 2.8.6 | Build: 455 vom 20191101]  Plugin[hibiscus 2.8.24 | Build: 388 vom 20200708]
[11.10.2020 19:30:12] Installierte und aktive Plugin-Versionen: [Finance.Websync ver. 0.9.16 | Build: 631 vom 20200907] [Hibiscus Mashup ver. 0.9.14 | Build: 394 vom 20200909]
[11.10.2020 19:30:12] Überprüfe Java-Version und den verwendeten Zeichensatz ...
[11.10.2020 19:30:12] OK: Java-Version 1.8.0_231 von 'Oracle Corporation' installiert, aktiv und verwendet Zeichensatz 'Cp1252' (Home: C:\Program Files\Jameica\javaruntime)
[11.10.2020 19:30:12] Überprüfe Selenium-Version ...
[11.10.2020 19:30:12] OK: Selenium-Version 3.141.59 installiert und aktiv
[11.10.2020 19:30:12] Überprüfe ChromeDriver-Version ...
[11.10.2020 19:30:12] OK: ChromeDriver-Version 85.0.4183.87 installiert und aktiv
Platform[Jameica 2.8.6 | Build: 455 vom 20191101]
[Finance.Websync ver. 0.9.16 | Build: 631 vom 20200907]
[Hibiscus Mashup ver. 0.9.14 | Build: 394 vom 20200909]

koepper
Beiträge: 2
Registriert: Do 17. Okt 2019, 17:46

Re: Fehler: Web-Login mit Selenium-WebDriver fehlgeschlagen!

Beitrag von koepper » So 11. Okt 2020, 21:36

ok, danke. Es funktioniert jetzt.
Es wäre natürlich schön, wenn Jameica den Benutzer irgendwie darauf aufmerksam machen würde, dass eine neue Version verfügbar ist.
Die vorgeschlagenen updates habe ich immer installiert und mich daher darauf verlassen, dass mein System aktuell ist.

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