无法单击在Python 2.7中使用selenium

无法单击在Python 2.7中使用selenium,python,selenium,xpath,click,web-crawler,Python,Selenium,Xpath,Click,Web Crawler,我是网络爬虫新手,非常感谢你的帮助。我正在尝试选择从政府数据库下载的数据范围。URL显示在代码块中。理想情况下,我想点击“全选”作为期间,点击“GDP(百万新台币,按当前价格)”作为指标,点击“数据”作为类型 问题:我只能单击“全选”。 问题1:代码有什么问题 问题2:我也尝试了xpath,但没有成功。在一个网页中存在多个//选项[@value='1'。我不知道这是否是原因。如果是,那么我应该如何编写xpath 问题3:如果我想为所有3个变量单击“全选”,我该怎么做 谢谢你的耐心 import

我是网络爬虫新手,非常感谢你的帮助。我正在尝试选择从政府数据库下载的数据范围。URL显示在代码块中。理想情况下,我想点击“全选”作为期间,点击“GDP(百万新台币,按当前价格)”作为指标,点击“数据”作为类型

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

问题1:代码有什么问题

问题2:我也尝试了xpath,但没有成功。在一个网页中存在多个//选项[@value='1'。我不知道这是否是原因。如果是,那么我应该如何编写xpath

问题3:如果我想为所有3个变量单击“全选”,我该怎么做

谢谢你的耐心

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_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()
或者使用
xpath

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()