2016-06-19 3 views
4

Warum verursacht dieses Stück Code eine Ausnahme selenium.common.exceptions.WebDriverException: Message: unknown error: cannot focus element?"Nachricht: unbekannter Fehler: kann Element nicht fokussieren" in Python Selen-Treiber

Soweit ich das beurteilen kann, wähle ich das richtige Element. Googling hat vorgeschlagen, ein .click() Element vor dem Senden von Schlüsseln zu haben, aber das hat auch nicht geholfen.

from selenium import webdriver 
from selenium.common.exceptions import TimeoutException 
from selenium.webdriver.common.by import By 
from selenium.webdriver.support.ui import WebDriverWait 
from selenium.webdriver.support import expected_conditions as EC 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Chrome() 
driver.get("https://netbanking.hdfcbank.com/netbanking/") 
login_wait = WebDriverWait(driver, 10) 

assert "Welcome to HDFC Bank" in driver.title 

frame = login_wait.until(EC.presence_of_element_located((By.NAME, 'login_page'))) 
driver.switch_to.frame(frame) 

try: 
    elem = login_wait.until(EC.presence_of_element_located((By.CLASS_NAME, 'pwd_field'))) 
    print("Page is ready!") 
    elem.send_keys("123456") 
    elem.send_keys(Keys.RETURN) 
except TimeoutException: 
    print("Loading took too much time!") 

driver.close() 

Antwort

3

Dies liegt daran, welches Element Sie von der pwd_field Klassennamen gefunden haben - Sie haben tatsächlich ein span Element passend zum Locator bekam. Stattdessen wollten Sie zum Passwort input Element:

elem = login_wait.until(EC.visibility_of_element_located((By.CLASS_NAME, 'input_password'))) 
gelangen
Verwandte Themen