我可以通过Python中的splinter模块以某种方式从页面的下拉列表中选择一个特定的元素吗?
我有以下HTML代码:
<select id="xyz">
<optgroup label="Group1">
<option value="1">pick1</option>
<option value="2">pick2</option>
</optgroup>
<optgroup label="Group2">
<option value="3">pick3</option>
<option value="4">pick4</option>
</optgroup>
</select>
假设我需要选择&#34; pick3&#34;选项。我该怎么办?
答案 0 :(得分:6)
首先使用find_by_id()
找到select
元素并使用select()
方法选择一个选项:
element = browser.find_by_id('xyz').first
element.select('3')
替代解决方案是使用find_by_xpath()
和click()
:
element = browser.find_by_xpath('//select[@id="xyz"]//option[@value="3"]').first
element.click()
答案 1 :(得分:1)
尝试
browser.find_option_by_text('pick3').first.click()
答案 2 :(得分:0)
由于我现在碰到了这个,我以为我会对此感到不满。找到select元素并执行'select(option_value)'这个xpath:'//选择[@name =“%s”] / option [@value =“%s”]'来查找选项。如果您使用的是示例中的optgroup,则此xpath会失败。
element = browser.find_by_xpath('// select [@ id =“xyz”] // option [@ value =“3”]')。 element.click() 正如alecxe建议应该做的那样。
答案 3 :(得分:0)
您还可以使用select_by_text()
方法 -
browser.find_by_id('xyz').select_by_text("pick3")