2014-02-19 3 views
1

나는 30 분마다 클라이언트 데이터를 다운로드하기 위해 몇 개의 웹 사이트에 접속합니다. Selenium (python)을 사용하면 자동으로 모든 로그인 정보를 입력하고 이후의 모든 선택/클릭 단계를 제어 할 수 있습니다. 이 설정으로 아무 것도 수동으로 클릭 할 필요가 없습니다. 그러나 하나의 특정 페이지 https://services.ehousingplus.com/Default.htm으로 '사용자 이름'/ '비밀번호'를 기입 할 수 없으며 로그인 버튼을 클릭 할 수도 없습니다. 사실, browser.find_element_by_xpath()을 사용하여 웹 페이지의 요소를 전혀 제어 할 수 없습니다. 특별한 기술을 사용하고 있는지 확실하지 않습니다. 도와주세요.셀렌으로 로그인 정보 기입

browser = webdriver.Firefox() 
browser.get("https://services.ehousingplus.com/Default.htm") 
browser.find_element_by_css_selector('#igtxtmyAuthentication_utxeUserName') 

는 IE 8/9 만 지원 말하는 웹 페이지에 공지가있다 :

나는 코드를 사용합니다. 하지만 로그인이 끝나면 이후의 단계에서만 제한이 있다고 생각합니다.

답변

4

요소는 프레임 안에 있습니다. Selenium은 현재 프레임의 요소에만 액세스 할 수 있습니다. 해당 페이지의 로그인 요소에 액세스하려면 요소가 포함 된 프레임으로 전환해야합니다.

당신은 사용해야합니다 :

browser.get("https://services.ehousingplus.com/Default.htm") 
browser.switch_to_frame("HDSApplications") 
browser.find_element_by_css_selector('#igtxtmyAuthentication_utxeUserName') 

위로 가기 프레임으로 이동하기 위해, 당신은 사용해야합니다 : 대답에 대한

browser.switch_to_default_content() 
+0

감사합니다. 나는 새로운 HTML이다. 프레임의 개념을 잘 알고 있습니다. – KLI