我可以通过Python中的splinter模块以某种方式从页面上的下拉列表中选择特定元素

时间:2014-05-23 22:06:22

标签: python html testing splinter

我可以通过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;选项。我该怎么办?

4 个答案:

答案 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")