欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python中Selenium的基本使用步驟

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

一、Selenium是什么?

Selenium是一個(gè)用于自動(dòng)化瀏覽器操作的Python庫(kù),常用于Web應(yīng)用的測(cè)試和爬蟲(chóng)等場(chǎng)景。

二、使用步驟  

1.引入庫(kù)

安裝Selenium庫(kù):使用pip命令安裝Selenium庫(kù)??梢赃\(yùn)行以下命令進(jìn)行安裝:

pip install selenium==4.5

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

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

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

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

 我的是版本到了115,但是ChromeDriver目前只有114的,選最新的版本,目前沒(méi)遇見(jiàn)問(wèn)題。

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

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

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

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

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

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

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

4.1.options 

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

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

 4.2.service

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

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

4.3.desired_capabilities

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

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

4.4.executable_path 

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

5.WebDriver的屬性 

# 打開(kāi)指定的網(wǎng)頁(yè)
driver.get("https://www.baidu.com")
#獲取當(dāng)前頁(yè)面的URL
current_url = driver.current_url
#獲取當(dāng)前頁(yè)面的標(biāo)題
title = driver.title
#獲取當(dāng)前頁(yè)面的源代碼
page_source = driver.page_source
#獲取當(dāng)前打開(kāi)的所有窗口的句柄
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ù)元素的屬性、文本、位置等進(jìn)行定位。以下是一些常用的元素定位方法:

舊版的selenium使用方法:

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

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

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)換成這兩種方式

三.打開(kāi)百度網(wǎng)頁(yè)的簡(jiǎn)單示例 

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

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文件放在同一個(gè)目錄下
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)頁(yè)的源碼
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")
#按鈕點(diǎn)擊一下
button.click()
time.sleep(2)
#執(zhí)行JavaScript腳本,該腳本表示鼠標(biāo)滾輪滑動(dòng)到距離頂部100000,即滑動(dòng)到底部
js_button = 'document.documentElement.scrollTop=100000'
driver.execute_script(js_button)
time.sleep(2)
#根據(jù)Xpath表達(dá)式定位下一頁(yè)的按鈕,并點(diǎn)擊一下
next_page = driver.find_element(By.XPATH,"http://a[@class='n']")
next_page.click()
time.sleep(2.1)
#網(wǎng)頁(yè)后退
driver.back()
time.sleep(1.5)
#網(wǎng)頁(yè)前進(jìn)
driver.forward()
time.sleep(1.8)
#網(wǎng)頁(yè)關(guān)閉
driver.quit()

總結(jié)

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

相關(guān)文章

  • 用Python實(shí)現(xiàn)定時(shí)備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器

    用Python實(shí)現(xiàn)定時(shí)備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器

    這篇文章主要介紹了用Python實(shí)現(xiàn)定時(shí)備份Mongodb數(shù)據(jù)并上傳到FTP服務(wù)器,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 使用Python進(jìn)行SSH和文件傳輸實(shí)現(xiàn)方法實(shí)例

    使用Python進(jìn)行SSH和文件傳輸實(shí)現(xiàn)方法實(shí)例

    這篇文章主要為大家介紹了使用Python進(jìn)行SSH和文件傳輸實(shí)現(xiàn)方法實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • 詳解Python如何使用Netmiko進(jìn)行文件傳輸

    詳解Python如何使用Netmiko進(jìn)行文件傳輸

    Netmiko是一個(gè)用于連接和管理各種網(wǎng)絡(luò)設(shè)備的Python庫(kù),它是Paramiko的一個(gè)擴(kuò)展。本文就來(lái)講講如何利用Netmiko實(shí)現(xiàn)文件傳輸功能吧
    2023-05-05
  • Python os模塊常用方法和屬性總結(jié)

    Python os模塊常用方法和屬性總結(jié)

    這篇文章主要介紹了Python os模塊常用方法和屬性總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-02-02
  • 基于Python實(shí)現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實(shí)例

    基于Python實(shí)現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實(shí)例

    這篇文章主要介紹了基于Python實(shí)現(xiàn)2種反轉(zhuǎn)鏈表方法代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • python列表[list]和元組(tuple)詳情

    python列表[list]和元組(tuple)詳情

    這篇文章主要介紹了python列表[list]和元組(tuple)詳情,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-08-08
  • 將matplotlib繪圖嵌入pyqt的方法示例

    將matplotlib繪圖嵌入pyqt的方法示例

    這篇文章主要介紹了將matplotlib繪圖嵌入pyqt的方法示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 關(guān)于python寫入文件自動(dòng)換行的問(wèn)題

    關(guān)于python寫入文件自動(dòng)換行的問(wèn)題

    今天小編就為大家分享一篇關(guān)于python寫入文件自動(dòng)換行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python批量下載抖音視頻

    python批量下載抖音視頻

    這篇文章主要為大家詳細(xì)介紹了python批量下載抖音視頻,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • 安裝pycurl報(bào)錯(cuò)Could not run curl-config: 'curl-config'

    安裝pycurl報(bào)錯(cuò)Could not run curl-config: &ap

    這篇文章主要為大家介紹了安裝pycurl報(bào)錯(cuò)Could not run curl-config: 'curl-config'解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12

最新評(píng)論