无法用Python Selenium选择选项(javascript?)

时间:2015-03-19 07:12:56

标签: python selenium selenium-webdriver web-scraping

我正在尝试在此页面上自动执行下载过程:https://cdr.ffiec.gov/public/PWS/DownloadBulkData.aspx

特别是,我希望能够在“报告期间结束日期”下拉列表中选择任何选项。

<select name="ctl00$MainContentHolder$DatesDropDownList" onchange="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$MainContentHolder$DatesDropDownList\&#39;,\&#39;\&#39;)&#39;, 0)" id="DatesDropDownList" class="valuelabel">
        <option selected="selected" value="81">12/31/2014</option>
        <option value="80">09/30/2014</option>
        <option value="79">06/30/2014</option>
        <option value="78">03/31/2014</option>
        <option value="76">12/31/2013</option>
                ...
</select>

我在Selenium中尝试了以下操作,但它返回一个空列表:

url = 'https://cdr.ffiec.gov/public/PWS/DownloadBulkData.aspx'
driver = webdriver.Firefox()
driver.get(url)
date_field = driver.find_element_by_id("DatesDropDownList")
Select(date_field).options

我认为问题是选择中的javascript。什么是正确的方法?

1 个答案:

答案 0 :(得分:1)

您的页面功能要求您从第一个列表框中选择一个值:)

因此,从&#34;可用产品&#34;中选择一个值,然后填充日期下拉列表。

browser = webdriver.Firefox()
browser.get('https://cdr.ffiec.gov/public/PWS/DownloadBulkData.aspx')

list1 = Select(browser.find_element_by_id("ListBox1"))
list1.select_by_visible_text("Call Reports -- Single Period")

date_field = Select(browser.find_element_by_id("DatesDropDownList"))
date_field.select_by_visible_text("03/31/2014")