python+selenium select下拉選擇框定位處理方法
一、前言
總結(jié)一下python+selenium select下拉選擇框定位處理的兩種方式,以備后續(xù)使用時(shí)查詢;
二、直接定位(XPath)
使用Firebug找到需要定位到的元素,直接右鍵復(fù)制XPath,使用find_element_by_xpath定位;
driver = webdriver.Firefox() driver.get("https://www.baidu.com/") driver.find_element_by_xpath().click()
三、間接定位(Select模塊)
頁(yè)面HTML源碼如下所示:
<select id="nr" name="NR"> <option value="10" selected="">每頁(yè)顯示10條</option> <option value="20">每頁(yè)顯示20條</option> <option value="50">每頁(yè)顯示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) # 實(shí)例化select s = Select(driver.find_element_by_id("nr")) # 定位選項(xiàng) s.select_by_value("20") # 選擇value="20"的項(xiàng):通過(guò)value屬性 time.sleep(2) #為了明顯的看出變化 s.select_by_index(0) # 選擇第一項(xiàng)選項(xiàng):通過(guò)選項(xiàng)的順序選擇,第一個(gè)為 0 time.sleep(2) #為了明顯的看出變化 s.select_by_visible_text("每頁(yè)顯示50條") # 選擇text="每頁(yè)顯示50條"的值,即在下拉時(shí)我們可以看到的文本
四、總結(jié)
Select提供了三種選擇方法:
select_by_index(index) ——通過(guò)選項(xiàng)的順序,第一個(gè)為 0
select_by_value(value) ——通過(guò)value屬性
select_by_visible_text(text) ——通過(guò)選項(xiàng)可見(jiàn)文本
Select提供了四種方法取消選擇:
deselect_by_index(index) deselect_by_value(value) deselect_by_visible_text(text) deselect_all()
Select提供了三個(gè)屬性方法提供信息:
options ——提供所有的選項(xiàng)的列表,其中都是選項(xiàng)的WebElement元素
all_selected_options ——提供所有被選中的選項(xiàng)的列表,其中也均為選項(xiàng)的WebElement元素
first_selected_option ——提供第一個(gè)被選中的選項(xiàng),也是下拉框的默認(rèn)值
通過(guò)Select提供的方法和屬性,我們可以對(duì)標(biāo)準(zhǔn)select下拉框進(jìn)行任何操作,但是對(duì)于非select標(biāo)簽的偽下拉框,需要使用XPath定位;
以上這篇python+selenium select下拉選擇框定位處理方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
django 鏈接多個(gè)數(shù)據(jù)庫(kù) 并使用原生sql實(shí)現(xiàn)
這篇文章主要介紹了django 鏈接多個(gè)數(shù)據(jù)庫(kù) 并使用原生sql實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-03-03Pandas數(shù)據(jù)集的合并與連接merge()方法
Pandas數(shù)據(jù)集的合并與連接(merge())是數(shù)據(jù)處理過(guò)程中常用的操作之一,在使用Pandas進(jìn)行數(shù)據(jù)集合并時(shí),可以使用merge()函數(shù)將兩個(gè)或多個(gè)數(shù)據(jù)集按照指定的列進(jìn)行合并,本文就來(lái)介紹一下,感興趣的可以了解一下2023-11-11Pytorch-Geometric中的Message?Passing使用及說(shuō)明
這篇文章主要介紹了Pytorch-Geometric中的Message?Passing使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Python交換字典鍵值對(duì)的四種方法實(shí)例
字典中有成對(duì)出現(xiàn)的鍵和值,但是字典中的鍵值對(duì)不是都能修改的,只有值才能修改,下面這篇文章主要給大家介紹了關(guān)于Python交換字典鍵值對(duì)的四種方法,需要的朋友可以參考下2022-12-12關(guān)于Python下載大文件時(shí)哪種方式速度更快
這篇文章主要介紹了關(guān)于Python下載大文件時(shí)哪種方式速度更快,通常,我們都會(huì)用 requests 庫(kù)去下載,這個(gè)庫(kù)用起來(lái)太方便了,需要的朋友可以參考下2023-04-04django配置連接數(shù)據(jù)庫(kù)及原生sql語(yǔ)句的使用方法
這篇文章主要給大家介紹了關(guān)于django配置連接數(shù)據(jù)庫(kù),以及原生sql語(yǔ)句的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03Python Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法匯總
這篇文章主要介紹了Python中的Pandas創(chuàng)建Dataframe數(shù)據(jù)框的六種方法,創(chuàng)建Dataframe主要是使用pandas中的DataFrame函數(shù),其核心就是第一個(gè)參數(shù):data,傳入原始數(shù)據(jù),因此我們可以據(jù)此給出六種創(chuàng)建Dataframe的方法,需要的朋友可以參考下2023-05-05