国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Python Selenium 的基本使用方法

這篇具有很好參考價值的文章主要介紹了Python Selenium 的基本使用方法。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。


1. 概述

Selenium 是一個用于自動化 web 瀏覽器的工具,它提供了一套用于測試 web 應(yīng)用程序的工具和庫。Selenium 最初是用于測試 web 應(yīng)用程序的,但它也被廣泛用于進行網(wǎng)絡(luò)數(shù)據(jù)采集、自動化任務(wù)和網(wǎng)頁操作等。

Selenium 支持多種編程語言,包括 Python、Java、JavaScript、C# 等,但最為常用的是使用 Python 進行 Selenium 測試和自動化。使用 Selenium,您可以編寫代碼來模擬用戶在 web 瀏覽器中的操作,例如打開網(wǎng)頁、填寫表單、點擊按鈕、提取網(wǎng)頁內(nèi)容等。

Selenium 提供了多個工具和庫,其中最常用的是 Selenium WebDriver,它允許您控制各種不同的 web 瀏覽器,如 Chrome、Firefox、Edge 等。通過 Selenium WebDriver,您可以編寫代碼來與瀏覽器進行交互,模擬用戶在瀏覽器中的行為,并對 web 應(yīng)用程序進行測試、數(shù)據(jù)采集和自動化任務(wù)。

2. 安裝Chrome及ChromeDriver

2.1 安裝Chrome

(1)linux 安裝 Chrome 方法:

wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

# 如果這一步報錯,直接執(zhí)行下一步
sudo dpkg -i ./google-chrome*.deb

sudo apt-get install -f

判斷是否安裝成功

google-chrome --version

(2)Windows 和 Mac,安裝Chrome 瀏覽器即可

2.2 安裝ChromeDriver

ChromeDriver 的下載方式參考這里,注意 ChromeDriver 和 Chrome 內(nèi)核的版本匹配即可。

3. 安裝Selenium

pip install selenium

4. 常見用法

4.1 啟動

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service

WEB_DRIVER_PATH = "/xxx/xx/chromedriver"
chrome_options = Options()
driver = webdriver.Chrome(service=Service(WEB_DRIVER_PATH), options=chrome_options)

以下是啟動一些常見應(yīng)用場景的 ChromeOptions 配置示例:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 創(chuàng)建ChromeOptions實例
chrome_options = Options()

# 1. 隱身模式啟動
chrome_options.add_argument("--incognito")

# 2. 大窗口啟動
chrome_options.add_argument("--start-maximized")

# 3. 禁用GPU渲染
chrome_options.add_argument('--disable-gpu')

# 4. 添加瀏覽器啟動參數(shù),例如禁用安全警告
chrome_options.add_argument('--unsafely-treat-insecure-origin-as-secure="http://example.com"')
chrome_options.add_argument('--ignore-certificate-errors')

# 5. 添加擴展程序
# 注意:extension_path應(yīng)指向本地的.crx擴展程序文件
extension_path = '/path/to/your/extension.crx'
chrome_options.add_extension(extension_path)

# 6. 更改下載目錄
prefs = {
    "download.default_directory": "/path/to/download/folder",
    "download.prompt_for_download": False,
    "plugins.always_open_pdf_externally": True  # 例如,總是外部打開PDF文件
}
chrome_options.add_experimental_option("prefs", prefs)

# 7. 啟動無頭模式(無界面運行)
chrome_options.add_argument('--headless')

# 創(chuàng)建Chrome瀏覽器實例,使用上述配置
driver = webdriver.Chrome(options=chrome_options)

# 執(zhí)行網(wǎng)頁導(dǎo)航或者其他操作...
driver.get('http://example.com')

# 使用完畢后關(guān)閉瀏覽器
driver.quit()

4.2 查找元素

(1)用 id 查找

from selenium.webdriver.common.by import By
try:
	ele = driver.find_element(By.ID, "id name")
except Exception as e:
	pass

(2)用 class 查找

from selenium.webdriver.common.by import By
try:
	# 查找第一個class名字匹配的元素
	ele = driver.find_element(By.CLASS_NAME, "class name")  # 替換 "class_name" 為實際Class名
	
	# 查找所有class名字匹配的元素
	eles = driver.find_elements(By.CLASS_NAME, "class name")
except Exception as e:
	pass

(3)用 css 查找

from selenium.webdriver.common.by import By
try:
	# 通過CSS選擇器定位單個元素
	element = driver.find_element(By.CSS_SELECTOR, "#element_id" or ".class_name" or "tag_name[attr=value]"...)  # 使用實際的CSS選擇器
	
	# 通過CSS選擇器定位一組元素
	elements = driver.find_elements(By.CSS_SELECTOR, "your_css_selector")
except Exception as e:
	pass

(4)查找其他元素

from selenium.webdriver.common.by import By
try:
	# 查找所有div標簽
	ele = driver.find_elements(By.TAG_NAME, "div")
	
	# 查找第一個a標簽
	ele = driver.find_element(By.TAG_NAME, "a")
	
	# 查找第一個span標簽
	ele = driver.find_element(By.TAG_NAME, "span")
except Exception as e:
	pass

4.3 等待頁面加載元素

有時頁面加載需要等待一定時間,如果顯式的 sleep,不夠靈活,可以借助selenium 的 WebDriverWait。

WebDriverWait 是 Selenium WebDriver 中用于實現(xiàn)隱式等待和顯式等待的一種機制,它能夠根據(jù)提供的條件等待元素變?yōu)榭捎没驖M足特定條件。顯式等待允許你在執(zhí)行下一步操作之前強制等待某個條件成立,這樣可以避免因為頁面元素加載不完全而導(dǎo)致的找不到元素或操作元素失敗的問題。

使用 WebDriverWait 的基本步驟如下:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# 初始化WebDriver對象,這里以Chrome為例
driver = webdriver.Chrome()

# 訪問某個URL
driver.get("http://www.example.com")

# 創(chuàng)建WebDriverWait對象,通常需要傳入WebDriver實例和超時時長
wait = WebDriverWait(driver, 10)  # 這里的10表示最長等待10秒

# 使用WebDriverWait等待某個條件滿足
# 例如,等待頁面上某個id為'element_id'的元素可見
element = wait.until(EC.presence_of_element_located((By.ID, 'element_id')))

# 此時,element變量已經(jīng)被賦值為找到的元素,可以對其進行后續(xù)操作
element.click()

# 或者等待頁面標題包含特定文字
wait.until(EC.title_contains("Example"))

# 最后,關(guān)閉瀏覽器
driver.quit()

expected_conditions模塊提供了多種內(nèi)置條件:

  • presence_of_element_located((By.ID, 'element_id')):等待元素存在
  • visibility_of_element_located((By.ID, 'element_id')):等待元素可見
  • element_to_be_clickable((By.ID, 'element_id')):等待元素可見且可點擊
  • title_is("Page Title"):等待頁面標題為特定值
  • title_contains("Partial Title"):等待頁面標題包含特定部分

通過這種方式,WebDriverWait 可以幫助我們在執(zhí)行自動化腳本時更加穩(wěn)定可靠,確保在進行操作之前目標元素已經(jīng)準備好。文章來源地址http://www.zghlxwxcb.cn/news/detail-860741.html

到了這里,關(guān)于Python Selenium 的基本使用方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • python中的svm:介紹和基本使用方法

    python中的svm:介紹和基本使用方法 支持向量機(Support Vector Machine,簡稱SVM)是一種常用的分類算法,可以用于解決分類和回歸問題。SVM通過構(gòu)建一個超平面,將不同類別的數(shù)據(jù)分隔開,使得正負樣本之間的間隔(也稱為邊緣)最大化。 在Python中,可以使用scikit-learn庫來使用

    2024年02月12日
    瀏覽(25)
  • python中的cnn:介紹和基本使用方法

    python中的cnn:介紹和基本使用方法 卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,簡稱CNN)是一種在圖像識別、語音識別、自然語言處理等許多領(lǐng)域取得顯著成功的深度學(xué)習(xí)模型。CNN的設(shè)計靈感來源于生物的視覺系統(tǒng),由多個卷積層、池化層和全連接層組成。 在Python中,我們通常使

    2024年02月12日
    瀏覽(21)
  • python中的lstm:介紹和基本使用方法

    python中的lstm:介紹和基本使用方法 未使用插件 LSTM(Long Short-Term Memory)是一種循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)的變體,專門用于處理序列數(shù)據(jù)。LSTM 可以記憶序列中的長期依賴關(guān)系,這使得它非常適合于各種自然語言處理(NLP)和時間序列預(yù)測任務(wù)。 在 Python 中,你可以使用深度學(xué)習(xí)框

    2024年02月12日
    瀏覽(27)
  • chatgpt賦能python:python中的iloc:介紹和基本使用方法

    chatgpt賦能python:python中的iloc:介紹和基本使用方法

    在Python中,Dataframe是數(shù)據(jù)分析中最常用的數(shù)據(jù)結(jié)構(gòu)。iloc是Python Pandas庫中用于簡化數(shù)據(jù)切片和子集操作的一種方法。 本文將介紹iloc的基礎(chǔ)概念和基本使用方法,并且通過實際的示例來演示如何使用iloc來快速選擇和操作數(shù)據(jù)集。 iloc是“integer location”的縮寫,意為“整數(shù)位置

    2024年02月04日
    瀏覽(24)
  • Python中os.environ基本介紹及使用方法

    Python中os.environ基本介紹及使用方法

    os.environ簡介 os.environ 是Python中的一個字典對象,它包含了當(dāng)前進程的環(huán)境變量。通過使用 os.environ ,可以獲取和設(shè)置環(huán)境變量的值。 下面是給給定的Python代碼添加注釋說明的示例 在上述代碼中,我們首先導(dǎo)入了 os 模塊,然后使用 os.environ.get() 方法獲取名為 PATH 的環(huán)境變量的

    2024年04月12日
    瀏覽(28)
  • Selenium介紹及基本使用方法

    Selenium介紹及基本使用方法

    Selenium是一個開源、免費、簡單、靈活,對Web瀏覽器支持良好的自動化測試工具,在UI自動化、爬蟲等場景下是十分實用的,能夠熟練掌握并使用Selenium工具可以大大的提高效率。 Selenium簡介 Selenium支持多平臺、多瀏覽器、多語言去實現(xiàn)自動化測試,是一個開源和可移植的Web測

    2024年02月04日
    瀏覽(21)
  • 【python】關(guān)于openpyxl的基本使用方法-看這篇就夠了

    【python】關(guān)于openpyxl的基本使用方法-看這篇就夠了

    目錄 ?編輯 一、下載安裝與引用 二、創(chuàng)建工作簿并寫入數(shù)據(jù) 創(chuàng)建工作簿 創(chuàng)建工作表 寫入數(shù)據(jù) 保存數(shù)據(jù) 三、讀取表格并查找數(shù)據(jù) 讀取表格 讀取指定工作表 重命名指定工作表 獲取單元格數(shù)據(jù) 四、其他操作? 多個工作表之間的切換 處理行和列 格式化單元格 修改工作表標題

    2024年02月10日
    瀏覽(23)
  • selenium+python自動化測試之使用webdriver操作瀏覽器的方法

    selenium+python自動化測試之使用webdriver操作瀏覽器的方法

    WebDriver簡介 selenium從2.0開始集成了webdriver的API,提供了更簡單,更簡潔的編程接口。selenium webdriver的目標是提供一個設(shè)計良好的面向?qū)ο蟮腁PI,提供了更好的支持進行web-app測試。從這篇博客開始,將學(xué)習(xí)使用如何使用python調(diào)用webdriver框架對瀏覽器進行一系列的操作 打開瀏覽

    2024年01月25日
    瀏覽(28)
  • 詳解--Postman基本使用方法+接口關(guān)聯(lián)+[Python,如何成為杰出的程序員

    詳解--Postman基本使用方法+接口關(guān)聯(lián)+[Python,如何成為杰出的程序員

    安裝方法:雙擊exe文件可以完成安裝,簡稱傻瓜式安裝,這里并是說各位,而是指安裝方式很簡單,直接下一步下一步就好。 進來之后就是這樣的了, 這里暫做簡介,后續(xù)我們也會慢慢講到其他的功能點。 工具使用 ==== 步驟: 1、復(fù)制鏈接,百度搜索天氣,這里只是建議哈

    2024年04月10日
    瀏覽(40)
  • Python中py2neo庫的基本使用方法

    Python中py2neo庫的基本使用方法

    因為需要將處理好的csv文件用neo4j存儲,因此想到使用python將數(shù)據(jù)導(dǎo)入neo4j,就需要用到py2neo庫。 安裝py2neo庫: 首先是建立連接: 注意:這里傳入用戶名和密碼使用的auth元組形式 Node和Relationship可以定義對應(yīng)的實例,Node第一個參數(shù)是label, 再利用graph.create()創(chuàng)建。打開neo4j可以

    2024年02月16日
    瀏覽(17)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包