Selenium Python无法从下拉列表中选择值,但我可以单击它以打开下拉列表

时间:2016-04-07 10:00:13

标签: python-2.7 selenium selenium-webdriver

我有一个奇怪的问题。我有一个下拉元素,我想选择值"否"。我的Selenium Python代码不会选择值" No"。 我试图点击元素以查看点击是否有效以及元素是否可以与之交互,可见等。
点击工作,下拉元素打开。

我的Selenium Python代码是:

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

def select_use_for_matching_dropdown(self, value):
    # Params value: The value for the Matching drop down Yes or No
    try:
        select = Select(WebDriverWait(self.driver, 20).until(EC.element_to_be_clickable((By.ID, 'data_configuration_edit_data_object_tab_details_lb_use_for_match'))))
        select.select_by_visible_text(str("No"))
    except NoSuchElementException, e:
        print "Element not found "
        print e
        self.save_screenshot("select_use_for_matching_dropdown")

HTML是:

 <select id="data_configuration_edit_data_object_tab_details_lb_use_for_match" class="gwt-ListBox marginright">
    <option value="yes">yes</option>
    <option value="no">no</option>
    <option value="exclude data categories">exclude data categories</option>
</select>

还有其他方法我可以尝试选择值&#34;否&#34;

我也试过

select = Select(self.driver.find_element_by_id('data_configuration_edit_data_object_tab_details_lb_use_for_match'))

select.select_by_visible_text('No')

谢谢Riaz

3 个答案:

答案 0 :(得分:1)

不确定Python驱动程序中的大写是否重要,但实际值是小写的“否”,因此您可能想尝试

select.select_by_visible_text('no')

答案 1 :(得分:1)

尝试下面的任何一个: -

select.select_by_visible_text('no')

OR

select.select_by_value('no')

希望它会对你有所帮助:)。

答案 2 :(得分:0)

希望这段代码对您有所帮助。

from selenium.webdriver.support.ui import Select
select= Select(driver.find_element_by_id('id_of_element'))

从给定的下拉列表中选择“否”选项

  1. 使用index属性选择选项的select_by_index()方法。

select.select_by_index(1)

  1. 使用value属性选择选项的select_by_value()方法。

select.select_by_value('no')

  1. 您可以使用匹配下拉菜单中显示的文本。

select.select_by_visible_text('no')