最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python中Selenium的基本使用步驟

 更新時間:2023年11月10日 10:03:44   作者:落慯  
Selenium是一個用于自動化瀏覽器操作的Python庫,常用于Web應(yīng)用的測試和爬蟲等場景,本文給大家介紹Python中Selenium的基本使用教程,感興趣的朋友一起看看吧

一、Selenium是什么?

Selenium是一個用于自動化瀏覽器操作的Python庫,常用于Web應(yīng)用的測試和爬蟲等場景。

二、使用步驟  

1.引入庫

安裝Selenium庫:使用pip命令安裝Selenium庫??梢赃\行以下命令進行安裝:

pip install selenium==4.5

目前有更高版本4.10,但是高版本有些參數(shù)被改了或舍棄了,使用起來要自己去找官方文檔,不方便。而且過高的Selenium版本和Chrome瀏覽器版本不兼容,之前用的selenium4.10打開chrome瀏覽器會秒退,后來將版本換為4.5就解決了 。

2.下載瀏覽器驅(qū)動

Selenium需要使用瀏覽器驅(qū)動來控制瀏覽器。這里以ChromeDriver為例,下載地址為:https://chromedriver.storage.googleapis.com/index.html

根據(jù)自己的Chrome版本進行下載

 我的是版本到了115,但是ChromeDriver目前只有114的,選最新的版本,目前沒遇見問題。

3.配置瀏覽器驅(qū)動

將下載的chromedriver.exe文件放置在與你的Python腳本相同的目錄下

并將瀏覽器驅(qū)動添加到系統(tǒng)的環(huán)境變量中,或?qū)⑵渎窂脚渲脼镾elenium的WebDriver對象的參 數(shù),在計算機上搜索高級系統(tǒng)設(shè)置->環(huán)境變量->path->新建->復(fù)制路徑->確定。

4.創(chuàng)建WebDriver對象

 使用Selenium的WebDriver對象來控制瀏覽器。根據(jù)使用的瀏覽器類型和驅(qū)動的配置,創(chuàng)建對應(yīng)   的WebDriver對象。

from selenium import webdriver
# 創(chuàng)建Chrome瀏覽器的WebDriver對象
driver = webdriver.Chrome()

 webdriver.Chrome的常用參數(shù)

4.1.options 

一個Options對象,用于配置Chrome瀏覽器的選項。你可以使用該對象來設(shè)置瀏覽器窗口大小、啟用/禁用瀏覽器的擴展程序、設(shè)置用戶代理等等。

from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--start-maximized')  # 最大化窗口
options.add_argument('--disable-extensions')  # 禁用擴展程序
driver = webdriver.Chrome(options=options)

 4.2.service

一個Service對象,用于配置和啟動ChromeDriver服務(wù)。如果沒有顯式指定,它將搜索系統(tǒng)的PATH環(huán)境變量來找到ChromeDriver服務(wù)。

from selenium.webdriver.chrome.service import Service
service = Service('chromedriver.exe')
driver = webdriver.Chrome(service=service)

4.3.desired_capabilities

一個字典,用于設(shè)置WebDriver的所需能力。你可以使用該字典來設(shè)置瀏覽器的版本、操作系統(tǒng)、瀏覽器名稱等等。

caps = {'browserName': 'chrome', 'version': '', 'platform': 'ANY'}
driver = webdriver.Chrome(desired_capabilities=caps)

4.4.executable_path 

指定Chrome驅(qū)動的路徑。如果沒有顯式指定,它將搜索系統(tǒng)的PATH環(huán)境變量來找到Chrome驅(qū)動程序。貌似被棄用了,我使用的時候報出警告了,用第二個service替換就行了。

5.WebDriver的屬性 

# 打開指定的網(wǎng)頁
driver.get("https://www.baidu.com")
#獲取當(dāng)前頁面的URL
current_url = driver.current_url
#獲取當(dāng)前頁面的標(biāo)題
title = driver.title
#獲取當(dāng)前頁面的源代碼
page_source = driver.page_source
#獲取當(dāng)前打開的所有窗口的句柄
window_handles = driver.window_handles
#獲取當(dāng)前窗口的句柄
current_window_handle = driver.current_window_handle
#獲取當(dāng)前WebDriver的所需能力
desired_capabilities = driver.desired_capabilities
#獲取當(dāng)前WebDriver的能力
capabilities = driver.capabilities

6.元素定位 

Selenium提供了多種元素定位的方法,可以根據(jù)元素的屬性、文本、位置等進行定位。以下是一些常用的元素定位方法:

舊版的selenium使用方法:

#通過id定位元素
element = driver.find_element_by_id("element-id") 
#通過class name定位元素
element = driver.find_element_by_class_name("element-class")
#通過name屬性定位元素
element = driver.find_element_by_name("element-name")
#通過tag name定位元素
element = driver.find_element_by_tag_name("element-tag")
#通過鏈接文本定位元素
element = driver.find_element_by_link_text("link-text")
#通過部分鏈接文本定位元素
element = driver.find_element_by_partial_link_text("partial-link-text")
#通過CSS選擇器定位元素
element = driver.find_element_by_css_selector("css-selector")
#通過XPath表達式定位元素
element = driver.find_element_by_xpath("xpath-expression")

新版的selenium有兩種定位方式,element = driver.find_element("id", "element-id")和element = driver.find_element(By.ID,"su") 這兩種方式本質(zhì)上是等效的,都是通過元素的id屬性進行定位。第一種方式中,使用了字符串來表示定位策略,而第二種方式中,使用了By類來表示定位策略。By類是Selenium提供的一組常用的定位策略,用于更清晰地表示定位方式。通過使用By類,可以讓代碼更易讀且具備更好的可維護性。

from selenium.webdriver.common.by import By
# 第一種方式:使用定位策略和定位值定位元素
element1 = driver.find_element("id", "element-id")
element1 = driver.find_element("name", "element-name")
# 第二種方式:使用By類結(jié)合定位策略定位元素
element2 = driver.find_element(By.ID, "element-id")
element2 = driver.find_element(By.NAME, "element-name")

 其余舊版的定位方法都可用轉(zhuǎn)換成這兩種方式

三.打開百度網(wǎng)頁的簡單示例 

該示例演示了如何獲取百度頁面的源碼,如何在百度搜索框里輸入信息并點擊查找 。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time
#chromedriver.exe要與該python文件放在同一個目錄下
service = Service("chromedriver.exe")
options = Options()
#初始窗口最大化
options.add_argument('--start-maximized')
driver = webdriver.Chrome(service=service, options=options)
url = "https://www.baidu.com"
driver.get(url)
#獲取網(wǎng)頁的源碼
content = driver.page_source
print(content)
#根據(jù)id定位到百度搜索的輸入框
input = driver.find_element(By.ID,"kw")
#在輸入框中輸入Python
input.send_keys('Python')
time.sleep(2)
#根據(jù)id定位到百度一下的按鈕
button = driver.find_element(By.ID,"su")
#按鈕點擊一下
button.click()
time.sleep(2)
#執(zhí)行JavaScript腳本,該腳本表示鼠標(biāo)滾輪滑動到距離頂部100000,即滑動到底部
js_button = 'document.documentElement.scrollTop=100000'
driver.execute_script(js_button)
time.sleep(2)
#根據(jù)Xpath表達式定位下一頁的按鈕,并點擊一下
next_page = driver.find_element(By.XPATH,"http://a[@class='n']")
next_page.click()
time.sleep(2.1)
#網(wǎng)頁后退
driver.back()
time.sleep(1.5)
#網(wǎng)頁前進
driver.forward()
time.sleep(1.8)
#網(wǎng)頁關(guān)閉
driver.quit()

總結(jié)

到此這篇關(guān)于Python中Selenium的基本使用的文章就介紹到這了,更多相關(guān)Python Selenium使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 解決pytorch GPU 計算過程中出現(xiàn)內(nèi)存耗盡的問題

    解決pytorch GPU 計算過程中出現(xiàn)內(nèi)存耗盡的問題

    今天小編就為大家分享一篇解決pytorch GPU 計算過程中出現(xiàn)內(nèi)存耗盡的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件的操作過程

    使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件的操作過程

    這篇文章主要介紹了使用Python搭建服務(wù)器公網(wǎng)展示本地電腦文件,今天我們就嘗試用python,建立一個簡單的http服務(wù)器,用來展示本地電腦上指定的目錄和文件,需要的朋友可以參考下
    2023-08-08
  • Python圖像處理之圖像金字塔詳解

    Python圖像處理之圖像金字塔詳解

    這篇文章主要介紹了圖像處理中的圖像金字塔,包括圖像向上取樣和向下取樣。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下
    2022-02-02
  • Python入門教程之三元運算符的使用詳解

    Python入門教程之三元運算符的使用詳解

    三元運算符也稱為條件表達式,是根據(jù)條件為真或假來評估某些內(nèi)容的運算符。它在2.5 版本中被添加到 Python 中。 本文將通過示例詳細(xì)說說三元運算符的使用,需要的可以參考一下
    2022-09-09
  • 手把手教你實現(xiàn)Python重試超時裝飾器

    手把手教你實現(xiàn)Python重試超時裝飾器

    這篇文章主要為大家介紹了實現(xiàn)Python重試超時裝飾器教程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步早日升職加薪
    2023-05-05
  • 淺談python中的多態(tài)

    淺談python中的多態(tài)

    在面向?qū)ο蟪绦蛟O(shè)計中,除了封裝和繼承特性外,多態(tài)也是一個非常重要的特性。讓具有不同功能的函數(shù)可以使用相同的函數(shù)名,這樣就可以用一個函數(shù)名調(diào)用不同內(nèi)容(功能)的函數(shù)
    2021-06-06
  • python shutil.move移動文件或目錄方式

    python shutil.move移動文件或目錄方式

    `shutil.move()`函數(shù)可以移動文件或目錄,移動目錄時,如果目標(biāo)目錄不存在,會創(chuàng)建該目錄并將源目錄內(nèi)容移動到新目錄;如果目標(biāo)目錄存在,則將源目錄移動到目標(biāo)目錄下,移動文件時,如果目標(biāo)路徑是目錄,則將文件移動到該目錄下并重命名
    2024-12-12
  • Python中如何將一個類方法變?yōu)槎鄠€方法

    Python中如何將一個類方法變?yōu)槎鄠€方法

    這篇文章主要介紹了Python中如何將一個類方法變?yōu)槎鄠€方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12
  • pytorch中nn.Sequential和nn.Module的區(qū)別與選擇方案

    pytorch中nn.Sequential和nn.Module的區(qū)別與選擇方案

    在 PyTorch 中,構(gòu)建神經(jīng)網(wǎng)絡(luò)模型有兩種主要方式:nn.Sequential 和 nn.Module,它們各有優(yōu)缺點,適用于不同的場景,下面通過示例給大家講解pytorch中nn.Sequential和nn.Module的區(qū)別與選擇方案,感興趣的朋友一起看看吧
    2024-06-06
  • python 實現(xiàn)字符串下標(biāo)的輸出功能

    python 實現(xiàn)字符串下標(biāo)的輸出功能

    這篇文章主要介紹了python 簡單的實現(xiàn)字符串下標(biāo)的輸出,本文通過實例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02

最新評論

海晏县| 鹤壁市| 武鸣县| 友谊县| 中牟县| 治县。| 华容县| 来凤县| 绥宁县| 长治县| 进贤县| 满城县| 宁强县| 仪陇县| 梁山县| 安庆市| 台东市| 昌平区| 垣曲县| 高陵县| 冀州市| 门源| 英吉沙县| 铅山县| 津南区| 韶关市| 佛教| 光山县| 临猗县| 桂平市| 股票| 阳信县| 简阳市| 乌兰察布市| 蒙阴县| 凤山县| 白沙| 林口县| 寿光市| 水富县| 绥棱县|