python selenium从下拉列表中选择一个隐藏项

时间:2016-06-05 05:43:06

标签: python selenium dropdown

我有这个xml代码,下拉框名为" tp"我成功访问了名称" tp"然后单击()以下拉选项列表但无法进入"今天"有价值" 919"如下

<span id="sp_tp" class="dropdown select-container">
    <select name="tp" rel="Timeperiod:" id="cc_tp"  onchange=";" data-selenium-id="Timeperiod:">
        <option data-selenium-id="Timeperiod::925" value="925" title="Last 4 Weeks">Last 4 Weeks</option>                              
        <option data-selenium-id="Timeperiod::919" value="919" selected="selected" title="Today">Today</option> 

我尝试使用以下名称,但失败了。你能帮忙吗

select_Timeperiod = driver.find_element_by_name('tp')
select_Timeperiod.click()
select_Timeperiod.find_element_by_name('Today').click()

我也试过xpath和id也失败了。

3 个答案:

答案 0 :(得分:1)

  

select_Timeperiod.find_element_by_name('Today').click()

要使其生效,元素的 name属性应等于Today。在您的情况下,option元素包含Today文字。

我会使用方便的Select class来解决这个问题:

from selenium.webdriver.support.select import Select

select_Timeperiod = Select(driver.find_element_by_name('tp'))
select_Timeperiod.select_by_visible_text("Today")

答案 1 :(得分:0)

Alecxe有一个很好的答案。如果您的应用程序恰好是本地化的,您不希望通过可见文本查找。在这种情况下,按价值选择会使这更加强大:

select_Timeperiod = driver.find_element_by_name('tp')
select_Timeperiod.click()
select_Timeperiod.find_element_by_name('Today').select_by_value("919")

答案 2 :(得分:0)

xe和Breaks Software,我尝试了你的答案但没有成功,错误如下:
1. select_Timeperiod.select_by_visible_text(&#34; Today&#34;) AttributeError:&#39; NoneType&#39;对象没有属性&#39; select_by_visible_text&#39;

  1. select_Timeperiod.find_element_by_name(&#39;今天&#39;)select_by_value。(&#34; 919&#34) AttributeError:&#39; NoneType&#39;对象没有属性&#39; find_element_by_name&#39;