溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

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

發(fā)布時間:2020-10-14 09:14:19 來源:腳本之家 閱讀:724 作者:一條漂浮的楓葉 欄目:開發(fā)技術(shù)

一、前言

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

二、直接定位(XPath)

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

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

三、間接定位(Select模塊)

頁面HTML源碼如下所示:

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

python+selenium 代碼如下:

# 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("設(shè)置")
ActionChains(driver).move_to_element(mouse).perform()
driver.find_element_by_link_text("搜索設(shè)置").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條"的值,即在下拉時我們可以看到的文本

四、總結(jié)

Select提供了三種選擇方法:

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

select_by_value(value) ——通過value屬性

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

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

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下拉選擇框定位處理方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI