首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python,selenium机器人下拉选择

Python,selenium机器人下拉选择
EN

Stack Overflow用户
提问于 2018-07-09 21:33:49
回答 1查看 97关注 0票数 2

我正在尝试从一个叫Correios的网站获取所有数据,在这个网站中,我需要处理一些下拉列表,我遇到了一些问题,比如:有两个下拉列表有一些依赖性,我想创建一个机器人,它通过这两个下拉列表中的每一项的所有选项并获取数据。

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.select import Select


chrome_path = r"C:\\Users\\Gustavo\\Desktop\\geckodriver\\chromedriver.exe"

driver = webdriver.Chrome(chrome_path)
lista_x = []
driver.get("http://www2.correios.com.br/sistemas/agencias/")
driver.maximize_window()

dropdownEstados = driver.find_elements_by_xpath("""//*[@id="estadoAgencia"]""")

optEstados = driver.find_elements_by_xpath("""//*[@id='estadoAgencia']/option""")
optMunicipios = driver.find_elements_by_xpath("""//*[@id="municipioAgencia"]/option""")
for valores in optEstados:
    encoded = valores.text.encode()
    valores.click()
    for municipio in optMunicipios:
        municipio.click()   

有两个下拉列表,一个选择州,另一个选择县,第二个直接依赖于第一个。我想知道在为所有州选择一个州之后,我如何通过所有的县选项。

输出:

selecting Estado ACRE
...selecting Municipio ACRELANDIA               
...selecting Municipio ASSIS BRASIL             
...selecting Municipio BRASILEIA                
...selecting Municipio BUJARI                   
...selecting Municipio CAPIXABA                 
...selecting Municipio CRUZEIRO DO SUL          
...selecting Municipio EPITACIOLANDIA           
...selecting Municipio FEIJO                    
...selecting Municipio JORDAO                   
...selecting Municipio MANCIO LIMA              
...selecting Municipio MANOEL URBANO            
...selecting Municipio MARECHAL THAUMATURGO     
...selecting Municipio PLACIDO DE CASTRO        
...selecting Municipio PORTO ACRE               
...selecting Municipio PORTO WALTER             
...selecting Municipio RIO BRANCO               
...selecting Municipio RODRIGUES ALVES          
...selecting Municipio SANTA ROSA DO PURUS      
...selecting Municipio SENA MADUREIRA           
...selecting Municipio SENADOR GUIOMARD         
...selecting Municipio TARAUACA                 
...selecting Municipio XAPURI                   
selecting Estado ALAGOAS
...selecting Municipio AGUA BRANCA              
...selecting Municipio ANADIA                   
...selecting Municipio ARAPIRACA                
...selecting Municipio ATALAIA                  
...selecting Municipio BARRA DE SANTO ANTONIO   
...selecting Municipio BARRA DE SAO MIGUEL      
...selecting Municipio BATALHA                  
...selecting Municipio BELEM                    
...selecting Municipio BELO MONTE               
...selecting Municipio BOCA DA MATA             
...selecting Municipio BRANQUINHA               
...selecting Municipio CACIMBINHAS              
...selecting Municipio CAJUEIRO                 
...selecting Municipio CAMPESTRE                
...selecting Municipio CAMPO ALEGRE             
...selecting Municipio CAMPO GRANDE             
...selecting Municipio CANAPI                   
...selecting Municipio CAPELA                   
...selecting Municipio CARNEIROS                
...selecting Municipio CHA PRETA                
...selecting Municipio COITE DO NOIA            
...selecting Municipio COLONIA LEOPOLDINA       
...selecting Municipio COQUEIRO SECO            
...selecting Municipio CORURIPE                 
...selecting Municipio CRAIBAS                  
...selecting Municipio DELMIRO GOUVEIA          
...selecting Municipio DOIS RIACHOS             
...selecting Municipio ESTRELA DE ALAGOAS       
...selecting Municipio FEIRA GRANDE             
...selecting Municipio FELIZ DESERTO            
...selecting Municipio FLEXEIRAS                
...selecting Municipio GIRAU DO PONCIANO        
...selecting Municipio IBATEGUARA               
...selecting Municipio IGACI                    
...selecting Municipio IGREJA NOVA              
...selecting Municipio INHAPI                   
...selecting Municipio JACARE DOS HOMENS        
...selecting Municipio JACUIPE                  
...selecting Municipio JAPARATINGA              
...selecting Municipio JARAMATAIA               
...selecting Municipio JEQUIA DA PRAIA          
...selecting Municipio JOAQUIM GOMES            
...selecting Municipio JUNDIA                   
...selecting Municipio JUNQUEIRO                
...selecting Municipio LAGOA DA CANOA           
...selecting Municipio LIMOEIRO DE ANADIA       
...selecting Municipio MACEIO                   
...selecting Municipio MAJOR ISIDORO            
...selecting Municipio MAR VERMELHO             
...selecting Municipio MARAGOGI                 
...selecting Municipio MARAVILHA                
...selecting Municipio MARECHAL DEODORO         
...selecting Municipio MARIBONDO                
...selecting Municipio MATA GRANDE              
...selecting Municipio MATRIZ DE CAMARAGIBE     
...selecting Municipio MESSIAS                  
...selecting Municipio MINADOR DO NEGRAO        
...selecting Municipio MONTEIROPOLIS            
...selecting Municipio MURICI                   
...selecting Municipio NOVO LINO                
...selecting Municipio OLHO D'AGUA DAS FLORES   
...selecting Municipio OLHO D'AGUA DO CASADO    
...selecting Municipio OLHO D'AGUA GRANDE       
...selecting Municipio OLIVENCA                 
...selecting Municipio OURO BRANCO              
...selecting Municipio PALESTINA                
...selecting Municipio PALMEIRA DOS INDIOS      
...selecting Municipio PAO DE ACUCAR            
...selecting Municipio PARICONHA                
...selecting Municipio PARIPUEIRA               
...selecting Municipio PASSO DE CAMARAGIBE      
...selecting Municipio PAULO JACINTO            
...selecting Municipio PENEDO                   
...selecting Municipio PIACABUCU                
...selecting Municipio PILAR                    
...selecting Municipio PINDOBA                  
...selecting Municipio PIRANHAS                 
...selecting Municipio POCO DAS TRINCHEIRAS     
...selecting Municipio PORTO CALVO              
...selecting Municipio PORTO DE PEDRAS          
...selecting Municipio PORTO REAL DO COLEGIO    
...selecting Municipio QUEBRANGULO              
...selecting Municipio RIO LARGO                
...selecting Municipio ROTEIRO                  
...selecting Municipio SANTANA DO IPANEMA       
...selecting Municipio SANTANA DO MUNDAU        
...selecting Municipio SAO BRAS                 
...selecting Municipio SAO JOSE DA LAJE         
...selecting Municipio SAO JOSE DA TAPERA       
...selecting Municipio SAO LUIS DO QUITUNDE     
...selecting Municipio SAO MIGUEL DOS CAMPOS    
...selecting Municipio SAO MIGUEL DOS MILAGRES  
...selecting Municipio SAO SEBASTIAO            
...selecting Municipio SATUBA                   
...selecting Municipio SENADOR RUI PALMEIRA     
...selecting Municipio TANQUE D'ARCA            
...selecting Municipio TAQUARANA                
...selecting Municipio TEOTONIO VILELA          
...selecting Municipio TRAIPU                   
...selecting Municipio UNIAO DOS PALMARES       
...selecting Municipio VICOSA                   
[Decode error - output not utf-8]
...selecting Municipio AGUA BRANCA              
...selecting Municipio ANADIA                   
...selecting Municipio ARAPIRACA                
...selecting Municipio ATALAIA                  
...selecting Municipio BARRA DE SANTO ANTONIO   
...selecting Municipio BARRA DE SAO MIGUEL      
...selecting Municipio BATALHA                  
...selecting Municipio BELEM                    
...selecting Municipio BELO MONTE               
...selecting Municipio BOCA DA MATA             
...selecting Municipio BRANQUINHA               
...selecting Municipio CACIMBINHAS              
...selecting Municipio CAJUEIRO                 
...selecting Municipio CAMPESTRE                
...selecting Municipio CAMPO ALEGRE             
...selecting Municipio CAMPO GRANDE             
...selecting Municipio CANAPI                   
...selecting Municipio CAPELA                   
...selecting Municipio CARNEIROS                
...selecting Municipio CHA PRETA                
...selecting Municipio COITE DO NOIA            
...selecting Municipio COLONIA LEOPOLDINA       
...selecting Municipio COQUEIRO SECO            
...selecting Municipio CORURIPE                 
...selecting Municipio CRAIBAS                  
...selecting Municipio DELMIRO GOUVEIA          
...selecting Municipio DOIS RIACHOS             
...selecting Municipio ESTRELA DE ALAGOAS       
...selecting Municipio FEIRA GRANDE             
...selecting Municipio FELIZ DESERTO            
...selecting Municipio FLEXEIRAS                
...selecting Municipio GIRAU DO PONCIANO        
...selecting Municipio IBATEGUARA               
...selecting Municipio IGACI                    
...selecting Municipio IGREJA NOVA              
...selecting Municipio INHAPI                   
...selecting Municipio JACARE DOS HOMENS        
...selecting Municipio JACUIPE                  
...selecting Municipio JAPARATINGA              
...selecting Municipio JARAMATAIA               
...selecting Municipio JEQUIA DA PRAIA          
...selecting Municipio JOAQUIM GOMES            
...selecting Municipio JUNDIA                   
...selecting Municipio JUNQUEIRO                
...selecting Municipio LAGOA DA CANOA           
...selecting Municipio LIMOEIRO DE ANADIA       
...selecting Municipio MACEIO                   
...selecting Municipio MAJOR ISIDORO            
...selecting Municipio MAR VERMELHO             
...selecting Municipio MARAGOGI                 
...selecting Municipio MARAVILHA                
...selecting Municipio MARECHAL DEODORO         
...selecting Municipio MARIBONDO                
...selecting Municipio MATA GRANDE              
...selecting Municipio MATRIZ DE CAMARAGIBE     
...selecting Municipio MESSIAS                  
...selecting Municipio MINADOR DO NEGRAO        
...selecting Municipio MONTEIROPOLIS            
...selecting Municipio MURICI                   
...selecting Municipio NOVO LINO                
...selecting Municipio OLHO D'AGUA DAS FLORES   
...selecting Municipio OLHO D'AGUA DO CASADO    
...selecting Municipio OLHO D'AGUA GRANDE       
...selecting Municipio OLIVENCA                 
...selecting Municipio OURO BRANCO              
...selecting Municipio PALESTINA                
...selecting Municipio PALMEIRA DOS INDIOS      
...selecting Municipio PAO DE ACUCAR            
...selecting Municipio PARICONHA                
...selecting Municipio PARIPUEIRA               
...selecting Municipio PASSO DE CAMARAGIBE    
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-10 04:50:49

这是可行的

time.sleep(3) #this time allows the page load all the elements
estadoList = Select(driver.find_element_by_name('estadoAgencia'))
for index in range(1,len(estadoList.options)):
    select = Select(driver.find_element_by_name('estadoAgencia'))
    print("selecting Estado",select.options[index].text)
    select.select_by_index(index)
    time.sleep(2)
    municípioList = Select(driver.find_element_by_name('municipioAgencia'))
    for index_b in range(1,len(municípioList.options)):
        select_b = Select(driver.find_element_by_name('municipioAgencia'))
        print("...selecting Municipio",select_b.options[index_b].text)
        select_b.select_by_index(index_b)
        time.sleep(2)

在导入中使用以下内容

 import time
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51246874

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档