无法点击使用硒与Python 2.7

问题描述:

我是新来的网络爬行,真的很感谢你的帮助。我试图从*数据库中选择要下载的数据范围。该URL显示在代码块中。理想情况下,我想单击期间的“全选”,“指标的GDP(百万N.T。$,当前价格)”和Type的“数据”。无法点击使用硒与Python 2.7

问题:我只能点击“全选”。

问题1:代码有什么问题?

问题2:我也试过用xpath但它没有工作。这里存在多个//选项[@ value ='1'在网页中。我不知道这是否是原因。如果是,那么我应该如何编写xpath?

问题3:如果我想为所有3个变量单击“全选”。我怎么能这样做?

谢谢你的耐心等待!使用xpath

driver.find_element_by_partial_link_text('Select all').click() 
driver.find_element_by_css_selector('select[name="values2"]>option[value="4"]').click() 
driver.find_element_by_css_selector('select[name="values3"]>option[value="1"]').click() 
driver.find_element_by_xpath('//input[@type="SUBMIT"]').click() 

或:

import scrapy 
from selenium import webdriver 
import time 
from scrapy.selector import HtmlXPathSelector 

class gdp_spider2(scrapy.Spider): 
    name = 'gdp_spider2' 
    allowed_domains = ['statdb.dgbas.gov.tw/'] 
    start_urls = ['http://statdb.dgbas.gov.tw/pxweb/Dialog/varval.asp?ma=NA8101A1Q&ti=Principal%20Figures%282008SNA%29-Quarterly&path=../PXfileE/NationalIncome/&lang=1&strList=L'] 

    def __init__(self): 

    self.driver = webdriver.Firefox() 

    def parse(self, response): 
     driver = self.driver 
     driver.get(response.url) 
     driver.find_element_by_partial_link_text('Select all').click() 
     time.sleep(1) 
     driver.find_element_by_partial_link_text('GDP (Million N.T.$,at Current Prices)').click() 
     time.sleep(1) 
     driver.find_element_by_partial_link_text('Data').click() 
     time.sleep(1) 
     driver.find_element_by_xpath("//input[@type='SUBMIT']").click() 

可以按如下方式使其

driver.find_element_by_partial_link_text('Select all').click() 
driver.find_element_by_xpath('//option[contains(text(),"GDP (Million N.T.$,at Current Prices)")]').click() 
driver.find_element_by_xpath('//option[contains(text(),"Data")]').click() 
driver.find_element_by_xpath('//input[@type="SUBMIT"]').click() 
+0

谢谢!有效! –