python+selenium select下拉選擇框定位處理方法


總結一下python+selenium select下拉選擇框定位處理的兩種方式,以備后續使用時查詢;

二、直接定位(XPath)

使用Firebug找到需要定位到的元素,直接右鍵復制XPath,使用find_element_by_xpath定位;

1
2
3
driver = webdriver.Firefox()
driver.get( "https://www.baidu.com/" )
driver.find_element_by_xpath().click()

三、間接定位(Select模塊)

頁面HTML源碼如下所示:

1
2
3
4
5
< select id = "nr" name = "NR" >
< option value = "10" selected = "" >每頁顯示10條</ option >
< option value = "20" >每頁顯示20條</ option >
< option value = "50" >每頁顯示50條</ option >
</ select >

python+selenium 代碼如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# coding:utf-8
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support.select import Select
import time
  
driver = webdriver.Chrome()
driver.get( "https://www.baidu.com/" )
driver.implicitly_wait( 20 )
  
mouse = driver.find_element_by_link_text( "設置" )
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text( "搜索設置" ).click()
time.sleep( 2 )
# 實例化select
s = Select(driver.find_element_by_id( "nr" ))
# 定位選項
s.select_by_value( "20" ) # 選擇value="20"的項:通過value屬性
time.sleep( 2 ) #為了明顯的看出變化
s.select_by_index( 0 ) # 選擇第一項選項:通過選項的順序選擇,第一個為 0
time.sleep( 2 ) #為了明顯的看出變化
s.select_by_visible_text( "每頁顯示50條" ) # 選擇text="每頁顯示50條"的值,即在下拉時我們可以看到的文本

四、總結

Select提供了三種選擇方法:

select_by_index(index) ——通過選項的順序,第一個為 0

select_by_value(value) ——通過value屬性

select_by_visible_text(text) ——通過選項可見文本

Select提供了四種方法取消選擇:

1
2
3
4
deselect_by_index(index)
deselect_by_value(value)
deselect_by_visible_text(text)
deselect_all()

Select提供了三個屬性方法提供信息:

options ——提供所有的選項的列表,其中都是選項的WebElement元素

all_selected_options ——提供所有被選中的選項的列表,其中也均為選項的WebElement元素

first_selected_option ——提供第一個被選中的選項,也是下拉框的默認值

通過Select提供的方法和屬性,我們可以對標准select下拉框進行任何操作,但是對於非select標簽的偽下拉框,需要使用XPath定位;

以上這篇python+selenium select下拉選擇框定位處理方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM