6

我可以通过 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>

假设我需要选择“pick3”选项。我该怎么做?

4

4 回答 4

8

首先找到select元素 usingfind_by_id()和 useselect()方法来选择一个选项:

element = browser.find_by_id('xyz').first
element.select('3')

替代解决方案是使用find_by_xpath()and click()

element = browser.find_by_xpath('//select[@id="xyz"]//option[@value="3"]').first
element.click()
于 2014-05-23T22:16:28.960 回答
1

尝试

browser.find_option_by_text('pick3').first.click() 
于 2016-05-20T06:34:19.137 回答
1

您也可以尝试以下使用select_by_text()方法 -

browser.find_by_id('xyz').select_by_text("pick3")
于 2017-09-26T04:43:37.453 回答
0

因为我现在遇到了这个问题,所以我想我会插话的。找到选择元素并执行 'select(option_value)' 会执行此 xpath: '//select[@name="%s"]/option[@value="%s"]' 以找到选项。如果您使用示例中的 optgroup,则此 xpath 将失败。

element = browser.find_by_xpath('//select[@id="xyz"]//option[@value="3"]').first element.click() 正如 alecxe 建议的那样,应该可以解决问题。

于 2016-02-18T20:26:42.530 回答