Selenium 常用方法與屬性、鼠標(biāo)懸停與 Select 操作
如果你有想要交流的想法、技術(shù),歡迎在評(píng)論區(qū)留言。
本篇博客主要學(xué)習(xí) selenium 常用方法與屬性,順帶著在學(xué)習(xí)一下鼠標(biāo)懸停與 Select 操作
@[toc](selenium 常用方法與屬性)
Selenium 常用方法與屬性
方法與屬性都是對(duì)象的內(nèi)容,本篇博客涉及的主要是 Selenium 對(duì)象與捕獲到的網(wǎng)頁(yè)元素對(duì)象。
maximize_window 方法
該方法可以實(shí)現(xiàn)瀏覽器窗口最大化操作,代碼如下:
# 瀏覽器最大化 driver.maximize_window() # 通過 ID 找到輸入框,輸入模特 driver.find_element_by_id("kw").send_keys("模特")
refresh 方法
刷新頁(yè)面,類似 F5 或者 CTRL+F5 操作。
driver.refresh()
back 方法
瀏覽器返回上一頁(yè)操作,具體自行嘗試即可。
forward 方法
瀏覽器前進(jìn)一頁(yè)操作,具體自行嘗試即可。
quit 方法
關(guān)閉瀏覽器并殺掉瀏覽器進(jìn)程,注意不同的瀏覽器驅(qū)動(dòng)進(jìn)程不同,例如我使用的是 firefox,所以在任務(wù)管理器中為 firefox.exe 進(jìn)程。
driver.quit() # driver.close()
該方法與 close 的區(qū)別就是,關(guān)閉瀏覽器同時(shí)殺掉進(jìn)程,而 close 不會(huì)。
以上部分都屬于 driver 對(duì)象的方法,接下來說明一下 driver 對(duì)象的屬性。
current_window_handle 屬性
獲取瀏覽器窗口句柄,看一下即可,使用場(chǎng)景不多。我本地顯示為 21,你可以嘗試一下你的電腦輸出。
# 打開百度圖片 driver.get('https://image.baidu.com/') print(driver.current_window_handle)
current_url 屬性
獲取當(dāng)前窗口的 url 地址,代碼自行測(cè)試。
title 屬性
獲取當(dāng)前頁(yè)面的 title 標(biāo)題值。
driver 的屬性值簡(jiǎn)單介紹 3 個(gè),接下來是 Selenium 獲取到的元素對(duì)象相關(guān)的方法與屬性。
send_keys 方法
前面的博客已經(jīng)使用過了,代表鍵盤輸入,例如在百度圖片輸入文字。
from selenium import webdriver import time driver = webdriver.Firefox() # 打開百度圖片 driver.get('https://image.baidu.com/') # 通過 ID 找到輸入框,輸入模特 driver.find_element_by_id("kw").send_keys("模特")
get_attribute 方法
獲取指定標(biāo)簽的屬性值。先獲取到指定標(biāo)簽,再獲取標(biāo)簽的指定屬性。
# 打開百度圖片 driver.get('https://image.baidu.com/') print(driver.find_element_by_id("kw").get_attribute("class"))
is_selected 方法
判斷元素是否被選中,一般用于復(fù)選框,例如下圖用戶協(xié)議。選中返回 True,反之返回 False。
is_enable 與 is_displayed 方法
is_enable 方法用于判斷獲取的元素是否可用,is_displayed 方法用于判斷元素在頁(yè)面是否顯示。
clear 方法
清除輸入框輸入的內(nèi)容。
text 屬性
通過元素對(duì)象的 text 屬性,可以獲取元素的文本值。
driver.get('https://www.csdn.net/') print(driver.find_element_by_class_name("headP").text)
Selenium 實(shí)現(xiàn)鼠標(biāo)懸停后選擇元素
鼠標(biāo)懸停在某個(gè)元素上,再進(jìn)行后續(xù)的操作,是網(wǎng)頁(yè)中常見的一種操作,在 Selenium 中,鍵盤鼠標(biāo)操作都封裝在了 Action Chains 類中,使用的時(shí)候需要導(dǎo)入該類。
Action Chains 中一些常用的方法如下:
click(某個(gè)元素) 單擊操作
click_and_hold(某個(gè)元素) 單擊按住不放,例如拖拽
double_click(某個(gè)元素) 雙擊
context_click(某個(gè)元素) 在元素上執(zhí)行鼠標(biāo)右鍵
drag_and_drop(元素,拖拽到元素) 鼠標(biāo)拖拽,將目標(biāo)元素拖拽到指定元素上
drag_and_drop_by_offset(元素,x 坐標(biāo),y 坐標(biāo)) 拖拽到指定位置
key_down() 按住鍵盤上的鍵
key_up() 松開鍵盤上的鍵
move_to_element(元素) 鼠標(biāo)移動(dòng)到元素上
move_to_element_with_offset(元素,x 坐標(biāo),y 坐標(biāo)) 將某個(gè)元素移動(dòng)到指定位置
perform() 執(zhí)行一系列的 Action Chains
release(元素) 釋放鼠標(biāo)
接下來實(shí)現(xiàn),打開 csdn 首頁(yè),然后鼠標(biāo)移動(dòng)消息上,點(diǎn)擊出現(xiàn)的公告鏈接。
from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Firefox() # 瀏覽器最大化 driver.maximize_window() # 打開首頁(yè) driver.get('https://www.csdn.net/') # 通過 id 獲取消息鏈接 head = driver.find_element_by_id("toolbar-remind") # 模擬鼠標(biāo)移動(dòng)到消息處 ActionChains(driver).move_to_element(head).perform() # 點(diǎn)擊公告鏈接 driver.find_element_by_link_text("公告").click()
更多的內(nèi)容你可以在挖掘一下,非常有意思。
Select 操作
Select 其實(shí)就是對(duì)網(wǎng)頁(yè)中的下拉列表進(jìn)行操作,該內(nèi)容有些特殊,所以 Selenium 庫(kù)單獨(dú)寫了一個(gè)類。
注意 Select 類的導(dǎo)入。
from selenium import webdriver from selenium.webdriver.support.select import Select driver = webdriver.Firefox() # 瀏覽器最大化 driver.maximize_window() # 打開學(xué)信網(wǎng)注冊(cè)頁(yè)面 driver.get('https://account.chsi.com.cn/account/preregister.action?from=chsi-home') # 找到身份證下拉列表 credentialtype = driver.find_element_by_id("credentialtype") Select(credentialtype).select_by_index(1)
運(yùn)行之后,成功選擇了 港澳臺(tái)身份證。
其中用到的方法為 select_by_index,依賴索引選擇,對(duì)應(yīng)的還有一個(gè)方法為 select_by_value 依賴值選擇。還有一個(gè)是依賴顯示內(nèi)容進(jìn)行選擇,方法名為 select_by_visible_text。
除了設(shè)置下拉列表選擇哪一項(xiàng)以外,還可以獲取所有下拉列表的選項(xiàng)。
通過 3 個(gè)屬性,第一個(gè)為 options,代碼示例:
# 找到身份證下拉列表 credentialtype = driver.find_element_by_id("credentialtype") options = Select(credentialtype).options print(options)
第二個(gè)為 all_selected_options,該屬性返回下拉列表中已經(jīng)被選中的選項(xiàng)。
第三個(gè)為 first_selected_option,返回第一個(gè)被選中的選項(xiàng)。
第二個(gè)與第三個(gè)自行嘗試即可。
寫在后面
本篇博客主要介紹了 Selenium 中常用的方法與屬性,額外擴(kuò)展了實(shí)現(xiàn)鼠標(biāo)懸停的 Action Chains 類中的方法基于 Select 類中的方法。
掌握之后你會(huì) Selenium 會(huì)有更深入的理解。
博主 ID:夢(mèng)想橡皮擦,希望大家
、
評(píng)論
、
。
Selenium
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。