[英]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.