如何使用 Python 使用 Selenium 选择下拉菜单值?

新手上路,请多包涵

我需要从 下拉 菜单中选择一个元素。

例如:

 <select id="fruits01" class="select" name="fruits">
  <option value="0">Choose your fruits:</option>
  <option value="1">Banana</option>
  <option value="2">Mango</option>
</select>

1) 首先我必须点击它。我这样做:

 inputElementFruits = driver.find_element_by_xpath("//select[id='fruits']").click()

2) 之后我必须选择好的元素,比如说 Mango

我尝试使用 inputElementFruits.send_keys(...) 但它没有用。

原文由 Adam Bovien 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 326
2 个回答

除非您的点击触发某种 ajax 调用来填充您的列表,否则您实际上不需要执行点击。

只需找到元素,然后枚举选项,选择所需的选项。

这是一个例子:

 from selenium import webdriver
b = webdriver.Firefox()
b.find_element_by_xpath("//select[@name='element_name']/option[text()='option_text']").click()

您可以阅读更多内容:

https://sqa.stackexchange.com/questions/1355/unable-to-select-an-option-using-seleniums-python-webdriver

原文由 alanning 发布,翻译遵循 CC BY-SA 3.0 许可协议

Selenium 提供了一个方便的 Select 来使用 select -> option 构造:

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

driver = webdriver.Firefox()
driver.get('url')

select = Select(driver.find_element_by_id('fruits01'))

# select by visible text
select.select_by_visible_text('Banana')

# select by value
select.select_by_value('1')

也可以看看:

原文由 alecxe 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题