我有这个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也失败了。
答案 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)