使用click()webdriver selenium函数Python时超时

2024-10-04 01:34:36 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的第一个web抓取项目,我在Python中使用selenium webdriver,以便在网站上选择几个选项后动态生成一些csv文件(尽管我还没有到那里)。在

但是,当执行到达button click()时,我遇到了一个意外的超时。单击被执行,但它被卡在那里,直到超时才会继续执行。在

有什么线索可以解决这个问题吗?在

谢谢!!在

from selenium import webdriver
from selenium.webdriver.support.ui import Select
import time


driver = webdriver.Firefox()
driver.get('http://www8.receita.fazenda.gov.br/SimplesNacional/Aplicacoes/ATBHE/estatisticasSinac.app/Default.aspx')
driver.find_element_by_id('ctl00_ctl00_Conteudo_AntesTabela_lnkOptantesPorCNAE').click()
Select(driver.find_element_by_id("ctl00_ctl00_Conteudo_AntesTabela_ddlColuna")).select_by_visible_text("Município")
filtro_uf =     driver.find_element_by_id('ctl00_ctl00_Conteudo_AntesTabela_btnFiltros')

for i in range (1, 28):
    filtro_uf.click()
    uf = Select(driver.find_element_by_id("ctl00_ctl00_Conteudo_AposTabela_ddlUf"))
    uf.options[i].click()
    time.sleep(2)
    driver.find_element_by_id('chkTodosMunicipios').click()
    time.sleep(2)
    driver.find_element_by_xpath("//*[contains(text(),'Ok')]").click()
    time.sleep(2)

# Here is where my code get stuck and gets a timeout
    driver.find_element_by_id('ctl00_ctl00_Conteudo_AntesTabela_btnExibir').click()

我得到了一个错误:

^{pr2}$

Tags: importidbytimedriverseleniumelementfind
1条回答
网友
1楼 · 发布于 2024-10-04 01:34:36

我找到了解决这个问题的办法。在

显然,click()函数会阻止代码,直到页面“完全”加载。但是,由于某些原因,页面一直在加载(没有其他东西可以加载),它保存我的代码,直到达到超时限制。在

我没有使用click,而是将其改为key ENTER,页面仍然会永远加载,但它不再保存代码。在

#FROM CLICK
driver.find_element_by_id('ctl00_ctl00_Conteudo_AntesTabela_btnExibir').click()

#TO SENDING ENTER (ue007)
driver.find_element_by_id('ctl00_ctl00_Conteudo_AntesTabela_btnExibir').send_keys(u'\ue007') 

相关问题 更多 >