2016-06-21 105 views
0

我使用Python 3.5.1,我需要自动化,每天早上(通过Python)的一堆报告的下载。这些是从网络平台导入的,网络平台的访问受限。我开始用下面这段代码,它工作正常:如何选择网页下拉框中的选项?

import webbrowser, time 
webbrowser.open('mylink') 
time.sleep(10) 

不过,我有一个下拉框,从中我必须选择并提交现在的位置挣扎。这里的HTML需要解决的问题:

<SELECT id=PRMT_SV_N000000000C88F800x000000000E8040B8_NS_ class="clsSelectControl pv" aria-invalid=false style="WIDTH: auto" hasLabel="true"> 
    <OPTION selected>MDM Location Code</OPTION> 
    <OPTION>--------------------------------------------</OPTION> 
    <OPTION value=3002 dv="3002 Ontario 002">3002&nbsp;&nbsp;Ontario&nbsp;&nbsp;002</OPTION> 
    <OPTION value=3004 dv="3004 Fresno, CA 004">3004&nbsp;&nbsp;Fresno,&nbsp;CA&nbsp;&nbsp;004</OPTION> 
    <OPTION value=3005 dv="3005 San Diego 

结束/提交按钮HTML:

<BUTTON onclick="oCV_NS_.promptAction('finish')" onmouseover="this.className = 'bp bph'" onmouseout="this.className = 'bp'" id=finishN000000000C88F800x000000000E804A58_NS_ class=bp name=finishN000000000C88F800x000000000E804A58_NS_>Finish</BUTTON> 

我省略了大部分课程的选项。对于这个练习,假设我想选择第一个,3004 Fresno, CA 004

+0

你不能没有扩展模块自动化浏览器。有几个,如果你搜索他们。 –

+0

@PeterWood,我正在尝试使用硒。你知道如何用硒模块解决这个问题吗? –

+0

你说你尝试过的方法[这里](https://stackoverflow.com/questions/7867537/selenium-python-drop-down-menu-option-value/28613320),以什么方式,他们不工作? –

回答

0

我假设他们不工作,因为您试图选择使用错误的文本或值使用select_by_value()select_by_visible_text()。尝试按索引选择。

奇怪的是,您的select html元素没有围绕id引号。硒可能无法使用find_element_by_id找到它。

试试这个:

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

... 

webbrowser.open('mylink') 

dropdown = driver.find_element_by_id("PRMT_SV_N000000000C88F800x000000000E8040B8_NS_")  
select = Select(dropdown)  
select.select_by_index(3)