[FIXED] Login-Eingabeelement kann mit Selenium-Python nicht abgerufen werden

Ausgabe

Ich habe versucht, ein Selenprogramm zu verwenden, aber jetzt stecke ich beim Anmelden fest.

  • Hier ist der Code => https://pastebin.com/ykTcd1rb
  • Wenn der Code die letzte Codezeile ( username = driver.find_element(By.ID, 'Login')) ausführt, erhalte ich eine Fehlermeldung ( selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":"[id="Login"]"})
  • Hier ist Element, das ich versuche zu bekommen<input aria-invalid="false" type="text" class="form-control" name="Login" id="Login" required="">

Bitte hilf mir

Lösung

Wie ich sehe, kann dieser Befehl more = driver.find_element(By.ID, "dropdownTopRightMenuButton")nicht ausgeführt werden, da dieses Element nicht sichtbar ist.

Außerdem ist es keine gute Idee, fest codierte Sleeps zu verwenden.
WebDriverWait expected_conditionssollte stattdessen verwendet werden.

Folgender Code hat bei mir funktioniert:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

options = Options()
options.add_argument("start-maximized")

webdriver_service = Service('C:\webdrivers\chromedriver.exe')
driver = webdriver.Chrome(options=options, service=webdriver_service)
wait = WebDriverWait(driver, 10)

url = "https://portal.librus.pl/rodzina/synergia/loguj"

driver.get(url)
wait.until(EC.element_to_be_clickable((By.ID, "cookieBoxClose"))).click()
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "a.login-before-btn"))).click()
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='email']"))).send_keys("my_username")
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "[name='password']"))).send_keys("my_password")
wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))).click()

Dies konnte sich natürlich nicht anmelden, da ich keine gültigen Anmeldeinformationen habe, aber mit korrekten Anmeldeinformationen sollte dies funktionieren


Beantwortet von –
Prophet


Antwort geprüft von –
Clifford M. (FixError Volunteer)

0 Shares:
Leave a Reply

Your email address will not be published. Required fields are marked *

You May Also Like