我目前在编写一个允许我在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
声明的要点。
感谢任何帮助。
答案 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()
吗?