2016-07-28 3 views
0

버튼 ('Todas')을 클릭하여 website에서 목록을 가져 오려고합니다. 다음은 브라우저의 HTML 소스에서 Todas 버튼 아이디 내 파이썬 코드는 다음과 같습니다html 소스 페이지에서 ID로 요소를 찾을 수 없습니다. Selenium

Button Id:'ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas' 

    from selenium import webdriver 
    import time 

    driver = webdriver.Firefox(executable_path='') 
    driver.implicitly_wait(12) 
    driver.get("http://www.bmfbovespa.com.br/pt_br/produtos/listados-a-vista-e-derivativos/renda-variavel/empresas-listadas.htm") 

    driver.find_element_by_id("ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas") 

오류 메시지 :

예외 : NoSuchElementException : { "방법": 요소를 찾을 수 없습니다 "ID를" "선택": "는 ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas"} 사실

, 소자는 브라우저 HTML

에 존재

https

나는 해결책을 찾지 못했습니다.

그래서 버튼을 클릭하고 데이터 목록을 가져 오려면 어떻게해야합니까?

감사합니다. ID bvmf_iframe와 함께 iframe 안에 내가 당신의 제공 websiteTODAS 버튼에서보고 있어요으로

답변

0

이유는이 페이지 때문이다 iFrame을 사용하는 경우 요소를 찾기 전에 iframe으로 이동해야합니다.

iframe = driver.find_elements_by_tag_name('iframe')[0] 
driver.switch_to_default_content() 

driver.switch_to_frame(iframe) 
driver.find_element_by_id("ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas") 
+0

귀하의 솔루션은 잘 작동합니다. Tks! –

+0

문제 없습니다. 답장으로 표시하십시오. 감사 –

0

, 당신은 아래의 버튼을 발견하기 전에 해당 프레임을 전환해야 -

driver = webdriver.Firefox(executable_path='') 
driver.implicitly_wait(12) 
driver.switch_to_frame("bvmf_iframe") 
driver.get("http://www.bmfbovespa.com.br/pt_br/produtos/listados-a-vista-e-derivativos/renda-variavel/empresas-listadas.htm") 

driver.find_element_by_id("ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas") 
관련 문제