一、什么是下拉框
下拉框是多項選擇項,選擇其中一種,類似下面(以百度搜索設置為例)

源代碼如下所示:

二、直接定位

三、二次定位

四、Select模塊(index)
1.除了上面介紹的兩種簡單的方法定位到select選項,selenium還提供了更高級的玩法,導入Select模塊。直接根據屬性或索引定位;
2.先要導入select方法:from selenium.webdriver.support.select import Select;
3.然后通過select選項的索引來定位選擇對應選項(從0開始計數),如選擇第三個選項:select_by_index(2)。

五、Select模塊(value)
1.Select模塊里面除了index的方法,還有一個方法,通過選項的value值來定位。每個選項,都有對應的value值,如:
<select id="nr" name="NR">
<option selected="" value="10">每頁顯示10條</option>
<option value="20">每頁顯示20條</option>
<option value="50">每頁顯示50條</option>
2.第二個選項對應的value值就是"20":select_by_value("20")

六、Select模塊其它方法

select_by_index() :通過索引定位
select_by_value() :通過value值定位
select_by_visible_text() :通過文本值定位
deselect_all() :取消所有選項
deselect_by_index() :取消對應index選項
deselect_by_value() :取消對應value選項
deselect_by_visible_text() :取消對應文本選項
first_selected_option() :返回第一個選項
all_selected_options() :返回所有的選項
七、參考代碼
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 # @File : selectt.py 4 # @Software: PyCharm 5 from selenium import webdriver 6 from selenium.webdriver.common.action_chains import ActionChains 7 from selenium.webdriver.support.select import Select 8 import time 9 url = 'https://www.baidu.com' 10 browser = webdriver.Firefox() 11 browser.get(url) 12 time.sleep(3) 13 # 將鼠標指向設置按鈕 14 mouse = browser.find_element_by_link_text('設置') 15 ActionChains(browser).move_to_element(mouse).perform() 16 time.sleep(2) 17 browser.find_element_by_link_text("搜索設置").click() 18 # 直接通過元素定位 19 # browser.find_element_by_xpath(".//*[@id='nr']/option[2]").click() 20 21 # 先定位下拉框,在定位里面的內容 22 # s = browser.find_element_by_id('nr') 23 # s.find_element_by_xpath("//option[@value='50']").click() 24 25 # 通過索引定位 26 # s = browser.find_element_by_id('nr') 27 # Select(s).select_by_index(2) 28 29 # 通過value定位 30 # s = browser.find_element_by_id('nr') 31 # Select(s).select_by_value(20) 32 33 # 通過visible_text定位 34 s = browser.find_element_by_id('nr') 35 Select(s).select_by_visible_text("每頁顯示20條")