选择元素不从.first_selected_option()方法返回webelement

时间:2013-06-03 14:57:15

标签: python selenium selenium-webdriver

我目前在编写一个允许我在Select元素中找到当前所选选项值的方法时遇到一些困难。

<select id="select_foo_bar">
   <option value="0">FOO</option>
   <option value="1" selected="selected">BAR</option>
   <option value ="2">FOOBAR</option>
</select>

目前我有这个:

def find_selected_option(self):
    self.wait.until(EC.presence_of_element_location((By.ID, "select_foo_bar"))
    option = Select(self.driver.find_element_by_id("select_foo_bar")).first_selected_option()
    return option.get_attribute("value")

据我了解,该方法会找到option元素,获取value并返回它。

不幸的是,我收到错误TypeError: 'WebElement' object is not callable。这发生在option = Select(self.driver.find_element_by_id("select_foo_bar")).first_selected_option()行。它甚至没有达到return声明的要点。

感谢任何帮助。

2 个答案:

答案 0 :(得分:2)

我已经解决了这个问题。这是因为我昨天用疲惫的眼睛阅读了文档。

需要的电话是first_selected_option,而不是first_selected_option()

感谢帮助人员。

答案 1 :(得分:0)

您是否在option = Select(...行的末尾错过了右括号?

也许这就是你要找的东西:Selenium - Python - drop-down menu option value

self.driver.find_element_by_id("select_foo_bar")应该已经返回该元素,您可以只调用self.driver.find_element_by_id("select_foo_bar").first_selected_option()吗?