[英]python selenium, can't find elements from page_source while can find from browser
[英]I can't find elements by Id inside html source page Selenium
我正在嘗試在網站上獲取列表,單擊一個按鈕(“ Todas”)。 瀏覽器html源上的Todas
按鈕ID和我的python代碼是:
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:無法找到元素:{“ method”:“ id”,“ selector”:“ ctl00_contentPlaceHolderConteudo_BuscaNomeEmpresa1_btnTodas”}
實際上,元素存在於瀏覽器html中
我閱讀了相關主題,但沒有找到解決方案。
那么,我需要做些什么才能單擊該按鈕並在之后獲取數據列表?
非常感謝!
正如我在您提供的網站中看到的那樣,此TODAS
按鈕位於ID為bvmf_iframe
的iframe
內,您需要先切換該框架,然后才能找到此按鈕,如下所示:-
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")
原因是因為此頁面使用的是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")
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.