2016-06-19 2 views
4

왜이 코드가 예외 selenium.common.exceptions.WebDriverException: Message: unknown error: cannot focus element을 던집니까?"메시지 : 알 수없는 오류 : python 셀렌 드라이버에서 알 수없는 오류 : 포커스를 찾을 수 없습니다"

내가 알 수있는 한, 나는 올바른 요소를 고르고있다. 인터넷 검색은 키를 보내기 전에 요소에 .click()이 있다고 제안했지만 그 역시 도움이되지 않았습니다.

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() 

답변

3

당신이 pwd_field 클래스 이름으로 위치한 한 어떤 요소 때문입니다 - 당신이 실제로 로케이터 일치하는 span 요소를 가지고있다. 대신 비밀번호 input 요소를 찾으려고했습니다.

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