Selenium 常用方法與屬性、鼠標(biāo)懸停與 Select 操作

      網(wǎng)友投稿 1216 2025-03-31

      如果你有想要交流的想法、技術(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 常用方法與屬性、鼠標(biāo)懸停與 Select 操作

      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)容。

      上一篇:最小二乘法在Excel中的應(yīng)用:簡(jiǎn)單易懂的數(shù)據(jù)分析方法
      下一篇:選擇標(biāo)題是居中對(duì)齊,為什么標(biāo)題在右面(標(biāo)題設(shè)置為居中對(duì)齊)
      相關(guān)文章
      亚洲欧洲日产国码av系列天堂 | 亚洲国产精品VA在线看黑人| 久久亚洲精品11p| 亚洲一区在线视频| 久久精品国产亚洲av影院| 亚洲AV日韩AV永久无码绿巨人 | 91在线亚洲综合在线| 亚洲人成电影网站| 亚洲人成网网址在线看| 亚洲一卡二卡三卡四卡无卡麻豆| 亚洲国产成人手机在线电影bd| 亚洲成人黄色在线| 亚洲伊人久久大香线蕉| 精品国产日韩久久亚洲| 亚洲日韩av无码中文| 亚洲成a∧人片在线观看无码| 亚洲av无码成人影院一区| 亚洲6080yy久久无码产自国产| 色五月五月丁香亚洲综合网| mm1313亚洲精品国产| 亚洲伊人久久成综合人影院| 中文字幕亚洲无线码| 久久精品国产亚洲麻豆| 亚洲AV日韩精品久久久久| 亚洲第一页中文字幕| 亚洲综合中文字幕无线码| 亚洲日本va一区二区三区| 在线观看亚洲电影| 亚洲午夜福利精品无码| 亚洲人成网77777色在线播放| 亚洲av永久无码精品网站| 久久亚洲精品国产精品| 亚洲中字慕日产2020| 亚洲熟妇无码AV| 无码不卡亚洲成?人片| 精品亚洲一区二区三区在线观看| 亚洲欧洲自拍拍偷午夜色无码| 亚洲AV乱码久久精品蜜桃| 亚洲欧洲日产v特级毛片| 亚洲中文字幕无码mv| 日韩亚洲国产二区|