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)文章
Python aiohttp百萬(wàn)并發(fā)極限測(cè)試實(shí)例分析
這篇文章主要介紹了Python aiohttp百萬(wàn)并發(fā)極限測(cè)試,結(jié)合實(shí)例形式分析了Python異步編程基于aiohttp客戶端高并發(fā)請(qǐng)求的相關(guān)操作技巧與使用注意事項(xiàng),需要的朋友可以參考下2019-10-10
Python數(shù)據(jù)庫(kù)的連接實(shí)現(xiàn)方法與注意事項(xiàng)
這篇文章主要介紹了Python數(shù)據(jù)庫(kù)的連接實(shí)現(xiàn)方法與注意事項(xiàng),需要的朋友可以參考下2016-02-02
Python?Pygame實(shí)戰(zhàn)之五款童年經(jīng)典游戲合集
本文為大家總結(jié)了五款利用Python+Pygame實(shí)現(xiàn)的童年經(jīng)典游戲:推箱子、滑雪、八分音符醬、保衛(wèi)蘿卜和飛機(jī)大戰(zhàn),快跟隨小編一起學(xué)習(xí)一下2022-04-04
使用Python3+PyQT5+Pyserial 實(shí)現(xiàn)簡(jiǎn)單的串口工具方法
今天小編就為大家分享一篇使用Python3+PyQT5+Pyserial 實(shí)現(xiàn)簡(jiǎn)單的串口工具方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
Python常用驗(yàn)證碼標(biāo)注和識(shí)別(需求分析和實(shí)現(xiàn)思路)
通過(guò)本文的介紹,我們了解了Python在常用驗(yàn)證碼標(biāo)注和識(shí)別方面的應(yīng)用,在實(shí)際項(xiàng)目中,我們可以根據(jù)具體需求選擇合適的模型和工具,實(shí)現(xiàn)高效、準(zhǔn)確的驗(yàn)證碼標(biāo)注和識(shí)別,感興趣的朋友跟隨小編一起看看吧2024-03-03
Python按照l(shuí)ist dict key進(jìn)行排序過(guò)程解析
這篇文章主要介紹了Python按照l(shuí)ist dict key進(jìn)行排序過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
Python虛擬環(huán)境virtualenv創(chuàng)建及使用過(guò)程圖解
這篇文章主要介紹了Python虛擬環(huán)境virtualenv創(chuàng)建及使用過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問(wèn)題
這篇文章主要介紹了Python3.x+pycharm+Anaconda中縮小打包的.exe體積的問(wèn)題,本文通過(guò)圖文實(shí)例相結(jié)合給大家分享解決方案,需要的朋友可以參考下2021-08-08

