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

Python+Selenium瀏覽器自動(dòng)化測(cè)試與網(wǎng)頁(yè)自動(dòng)登錄

 更新時(shí)間:2026年05月15日 09:20:59   作者:yuanpan  
在日常開(kāi)發(fā)、測(cè)試和辦公自動(dòng)化中,我們經(jīng)常會(huì)遇到一些重復(fù)性的瀏覽器操作,如果這些操作每天都要重復(fù)執(zhí)行,手動(dòng)處理不僅浪費(fèi)時(shí)間,還容易因?yàn)槁c(diǎn)、輸錯(cuò)、忘記截圖而出錯(cuò),本文面向Python自動(dòng)化測(cè)試初學(xué)者,通過(guò)一個(gè)完整案例講解如何使用Selenium自動(dòng)打開(kāi)網(wǎng)頁(yè)

引言

在日常開(kāi)發(fā)、測(cè)試和辦公自動(dòng)化中,我們經(jīng)常會(huì)遇到一些重復(fù)性的瀏覽器操作,例如打開(kāi)網(wǎng)頁(yè)、輸入賬號(hào)密碼、點(diǎn)擊登錄按鈕、檢查頁(yè)面是否加載成功、保存截圖、批量處理后臺(tái)數(shù)據(jù)等。

如果這些操作每天都要重復(fù)執(zhí)行,手動(dòng)處理不僅浪費(fèi)時(shí)間,還容易因?yàn)槁c(diǎn)、輸錯(cuò)、忘記截圖而出錯(cuò)。Python 的 selenium 庫(kù)可以幫助我們自動(dòng)控制瀏覽器,完成網(wǎng)頁(yè)自動(dòng)化測(cè)試和網(wǎng)頁(yè)自動(dòng)登錄等任務(wù)。

本文面向 Python 自動(dòng)化測(cè)試初學(xué)者,通過(guò)一個(gè)完整案例講解如何使用 Selenium 自動(dòng)打開(kāi)網(wǎng)頁(yè)、輸入用戶(hù)名密碼、點(diǎn)擊按鈕、等待頁(yè)面元素加載,并自動(dòng)截圖保存。

一、Selenium 庫(kù)介紹

Selenium 是一個(gè)常用的瀏覽器自動(dòng)化測(cè)試工具,可以模擬真實(shí)用戶(hù)在瀏覽器中的操作,例如:

  • 打開(kāi)網(wǎng)頁(yè)
  • 查找頁(yè)面元素
  • 輸入文本
  • 點(diǎn)擊按鈕
  • 切換窗口
  • 等待元素加載
  • 獲取頁(yè)面內(nèi)容
  • 截圖保存
  • 執(zhí)行 JavaScript
  • 驗(yàn)證頁(yè)面結(jié)果

Selenium 支持多種瀏覽器,包括:

  • Chrome
  • Edge
  • Firefox
  • Safari

在 Python 中使用 Selenium,可以編寫(xiě)自動(dòng)化測(cè)試腳本,也可以完成一些辦公自動(dòng)化任務(wù),例如后臺(tái)系統(tǒng)自動(dòng)登錄、自動(dòng)導(dǎo)出報(bào)表、自動(dòng)截圖留檔、自動(dòng)巡檢頁(yè)面狀態(tài)等。

安裝 Selenium:

pip install selenium

查看版本:

python -c "import selenium; print(selenium.__version__)"

二、ChromeDriver 安裝配置

Selenium 需要通過(guò)瀏覽器驅(qū)動(dòng)來(lái)控制瀏覽器??刂?Chrome 瀏覽器時(shí),常用的是 ChromeDriver。

1. Selenium 4 的自動(dòng)驅(qū)動(dòng)管理

如果你使用的是 Selenium 4.6 及以上版本,Selenium Manager 通??梢宰詣?dòng)管理瀏覽器驅(qū)動(dòng)。很多情況下,你只需要安裝 Selenium,然后直接運(yùn)行:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com")

Selenium 會(huì)嘗試自動(dòng)找到本機(jī) Chrome,并匹配合適的驅(qū)動(dòng)。

2. 手動(dòng)安裝 ChromeDriver

如果自動(dòng)管理失敗,可以手動(dòng)安裝 ChromeDriver。

步驟如下:

  1. 打開(kāi) Chrome 瀏覽器
  2. 在地址欄輸入 chrome://version/
  3. 查看 Chrome 主版本號(hào)
  4. 下載對(duì)應(yīng)版本的 ChromeDriver
  5. chromedriver.exe 放到一個(gè)固定目錄
  6. 將該目錄加入系統(tǒng)環(huán)境變量 Path

例如 Windows 中可以放到:

C:\WebDriver\chromedriver.exe

并把:

C:\WebDriver

加入環(huán)境變量 Path。

配置完成后,在命令行輸入:

chromedriver --version

如果能看到版本號(hào),說(shuō)明配置成功。

3. 指定 ChromeDriver 路徑

如果不想配置環(huán)境變量,也可以在代碼中指定驅(qū)動(dòng)路徑:

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

service = Service(r"C:\WebDriver\chromedriver.exe")
driver = webdriver.Chrome(service=service)

對(duì)初學(xué)者來(lái)說(shuō),建議優(yōu)先使用 Selenium 4 的自動(dòng)驅(qū)動(dòng)管理;如果失敗,再手動(dòng)配置 ChromeDriver。

三、自動(dòng)打開(kāi)網(wǎng)頁(yè)

Selenium 打開(kāi)網(wǎng)頁(yè)的基本代碼如下:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://example.com")

常用窗口操作:

driver.maximize_window()
driver.set_window_size(1280, 800)

獲取網(wǎng)頁(yè)標(biāo)題:

print(driver.title)

獲取當(dāng)前地址:

print(driver.current_url)

關(guān)閉瀏覽器:

driver.quit()

注意:建議使用 driver.quit() 關(guān)閉整個(gè)瀏覽器進(jìn)程,而不是只用 driver.close() 關(guān)閉當(dāng)前標(biāo)簽頁(yè)。

四、元素定位方法

網(wǎng)頁(yè)自動(dòng)化的核心是“找到元素,然后操作元素”。Selenium 提供了多種元素定位方式。

需要先導(dǎo)入:

from selenium.webdriver.common.by import By

常見(jiàn)定位方式如下:

1. 通過(guò) ID 定位

username_input = driver.find_element(By.ID, "username")

適合頁(yè)面元素有唯一 id 的情況。

2. 通過(guò) name 定位

password_input = driver.find_element(By.NAME, "password")

表單輸入框經(jīng)常會(huì)有 name 屬性。

3. 通過(guò) class name 定位

button = driver.find_element(By.CLASS_NAME, "login-btn")

注意:CLASS_NAME 只能寫(xiě)單個(gè) class,不能寫(xiě)多個(gè) class 組合。

4. 通過(guò) CSS Selector 定位

login_button = driver.find_element(By.CSS_SELECTOR, "button.login-btn")

CSS Selector 非常靈活,是實(shí)際項(xiàng)目中最常用的方式之一。

例如:

driver.find_element(By.CSS_SELECTOR, "input[name='username']")
driver.find_element(By.CSS_SELECTOR, "#login-form button[type='submit']")

5. 通過(guò) XPath 定位

login_button = driver.find_element(By.XPATH, "http://button[text()='登錄']")

XPath 適合定位結(jié)構(gòu)復(fù)雜、缺少穩(wěn)定屬性的元素。

常見(jiàn) XPath:

//input[@id='username']
//button[contains(text(), '登錄')]
//div[@class='message']

6. find_element 與 find_elements 的區(qū)別

查找單個(gè)元素:

element = driver.find_element(By.CSS_SELECTOR, ".item")

查找多個(gè)元素:

elements = driver.find_elements(By.CSS_SELECTOR, ".item")

區(qū)別:

  • find_element 找不到元素會(huì)拋異常
  • find_elements 找不到元素會(huì)返回空列表

五、自動(dòng)輸入用戶(hù)名密碼

找到輸入框后,可以使用 send_keys() 輸入內(nèi)容。

username_input = driver.find_element(By.ID, "username")
password_input = driver.find_element(By.ID, "password")

username_input.send_keys("demo_user")
password_input.send_keys("demo_password")

如果輸入框中已有內(nèi)容,可以先清空:

username_input.clear()
username_input.send_keys("demo_user")

真實(shí)項(xiàng)目中,不建議把賬號(hào)密碼直接寫(xiě)死在代碼里。更推薦使用環(huán)境變量:

import os

username = os.getenv("TEST_USERNAME")
password = os.getenv("TEST_PASSWORD")

運(yùn)行前設(shè)置環(huán)境變量:

set TEST_USERNAME=demo_user
set TEST_PASSWORD=demo_password

這樣可以避免賬號(hào)密碼泄露到代碼倉(cāng)庫(kù)。

六、自動(dòng)點(diǎn)擊按鈕

點(diǎn)擊按鈕使用 click()

login_button = driver.find_element(By.CSS_SELECTOR, "button[type='submit']")
login_button.click()

有些頁(yè)面按鈕需要等待可點(diǎn)擊后再點(diǎn)擊,否則可能出現(xiàn)元素未加載、按鈕被遮擋等問(wèn)題。更推薦結(jié)合顯式等待:

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)

login_button = wait.until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))
)
login_button.click()

七、顯式等待與隱式等待

網(wǎng)頁(yè)不是瞬間加載完成的,尤其是現(xiàn)代前端頁(yè)面經(jīng)常使用 Ajax、Vue、React 等技術(shù)動(dòng)態(tài)渲染內(nèi)容。如果元素還沒(méi)出現(xiàn)就去定位,很容易報(bào)錯(cuò)。

Selenium 常用兩類(lèi)等待方式:

  • 隱式等待
  • 顯式等待

1. 隱式等待

隱式等待會(huì)對(duì)所有元素查找生效。

driver.implicitly_wait(10)

含義:查找元素時(shí),如果元素暫時(shí)不存在,最多等待 10 秒。

優(yōu)點(diǎn):

  • 寫(xiě)法簡(jiǎn)單
  • 對(duì)全局生效

缺點(diǎn):

  • 不夠精確
  • 復(fù)雜頁(yè)面中不容易控制具體等待條件

2. 顯式等待

顯式等待針對(duì)某個(gè)具體條件等待,更適合自動(dòng)化測(cè)試。

wait = WebDriverWait(driver, 10)

element = wait.until(
    EC.presence_of_element_located((By.ID, "username"))
)

常見(jiàn)等待條件:

EC.presence_of_element_located(locator)      # 元素存在于 DOM 中
EC.visibility_of_element_located(locator)    # 元素可見(jiàn)
EC.element_to_be_clickable(locator)          # 元素可點(diǎn)擊
EC.title_contains("首頁(yè)")                    # 標(biāo)題包含指定文字
EC.url_contains("dashboard")                 # URL 包含指定文字

實(shí)際項(xiàng)目中,建議以顯式等待為主,隱式等待可以設(shè)置一個(gè)較短時(shí)間作為兜底。

八、自動(dòng)截圖保存

Selenium 可以保存當(dāng)前瀏覽器截圖,非常適合測(cè)試留痕、異常排查和自動(dòng)化辦公。

driver.save_screenshot("login_result.png")

也可以截圖到指定目錄:

from pathlib import Path
from datetime import datetime

screenshot_dir = Path("screenshots")
screenshot_dir.mkdir(exist_ok=True)

file_name = datetime.now().strftime("login_%Y%m%d_%H%M%S.png")
driver.save_screenshot(str(screenshot_dir / file_name))

如果登錄失敗,可以截圖保存現(xiàn)場(chǎng),方便后續(xù)分析。

九、完整實(shí)戰(zhàn)代碼:自動(dòng)登錄并截圖

下面是一份完整實(shí)戰(zhàn)代碼。為了避免涉及真實(shí)網(wǎng)站賬號(hào)密碼,示例使用一個(gè)演示登錄頁(yè)地址和占位選擇器。你在實(shí)際項(xiàng)目中只需要把 URL、賬號(hào)密碼和元素定位方式替換成自己的系統(tǒng)即可。

建議保存為:

selenium_login_demo.py

完整代碼如下:

import os
from datetime import datetime
from pathlib import Path

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


LOGIN_URL = "https://example.com/login"
USERNAME = os.getenv("TEST_USERNAME", "demo_user")
PASSWORD = os.getenv("TEST_PASSWORD", "demo_password")
SCREENSHOT_DIR = Path("screenshots")


def create_driver():
    """創(chuàng)建 Chrome 瀏覽器對(duì)象。"""
    options = webdriver.ChromeOptions()
    options.add_argument("--start-maximized")
    options.add_argument("--disable-blink-features=AutomationControlled")

    driver = webdriver.Chrome(options=options)
    driver.implicitly_wait(3)
    return driver


def save_screenshot(driver, name_prefix):
    """保存瀏覽器截圖。"""
    SCREENSHOT_DIR.mkdir(exist_ok=True)
    timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
    file_path = SCREENSHOT_DIR / f"{name_prefix}_{timestamp}.png"
    driver.save_screenshot(str(file_path))
    return file_path


def login(driver):
    """自動(dòng)打開(kāi)網(wǎng)頁(yè)、輸入賬號(hào)密碼并點(diǎn)擊登錄。"""
    wait = WebDriverWait(driver, 10)

    driver.get(LOGIN_URL)

    username_input = wait.until(
        EC.visibility_of_element_located((By.ID, "username"))
    )
    password_input = wait.until(
        EC.visibility_of_element_located((By.ID, "password"))
    )

    username_input.clear()
    username_input.send_keys(USERNAME)

    password_input.clear()
    password_input.send_keys(PASSWORD)

    login_button = wait.until(
        EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))
    )
    login_button.click()

    wait.until(
        EC.url_contains("dashboard")
    )

    success_element = wait.until(
        EC.visibility_of_element_located((By.CSS_SELECTOR, ".user-info"))
    )
    return success_element.text


def main():
    driver = create_driver()

    try:
        user_info = login(driver)
        print(f"登錄成功:{user_info}")
        screenshot_path = save_screenshot(driver, "login_success")
        print(f"成功截圖已保存:{screenshot_path}")

    except TimeoutException:
        screenshot_path = save_screenshot(driver, "login_failed")
        print(f"登錄失敗或頁(yè)面加載超時(shí),現(xiàn)場(chǎng)截圖已保存:{screenshot_path}")
        raise

    finally:
        driver.quit()


if __name__ == "__main__":
    main()

十、如何改成真實(shí)網(wǎng)站登錄

把示例代碼改成真實(shí)項(xiàng)目,一般只需要修改 5 個(gè)地方。

1. 修改登錄地址

LOGIN_URL = "https://your-company-system.com/login"

2. 修改用戶(hù)名輸入框定位

如果頁(yè)面 HTML 是:

<input id="account" name="account">

則代碼可以改成:

username_input = wait.until(
    EC.visibility_of_element_located((By.ID, "account"))
)

3. 修改密碼輸入框定位

password_input = wait.until(
    EC.visibility_of_element_located((By.NAME, "password"))
)

4. 修改登錄按鈕定位

login_button = wait.until(
    EC.element_to_be_clickable((By.XPATH, "http://button[contains(text(), '登錄')]"))
)

5. 修改登錄成功判斷條件

登錄成功后,頁(yè)面可能跳轉(zhuǎn)到后臺(tái)首頁(yè),也可能出現(xiàn)用戶(hù)頭像或用戶(hù)名。

例如:

wait.until(EC.url_contains("home"))

或者:

wait.until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, ".avatar"))
)

自動(dòng)化測(cè)試中,登錄成功判斷非常重要。不能只點(diǎn)擊按鈕就認(rèn)為登錄成功,必須驗(yàn)證頁(yè)面狀態(tài)。

十一、常見(jiàn)問(wèn)題與解決方法

1. 找不到元素

常見(jiàn)報(bào)錯(cuò):

NoSuchElementException

原因可能是:

  • 定位方式寫(xiě)錯(cuò)
  • 頁(yè)面還沒(méi)加載完成
  • 元素在 iframe 中
  • 元素需要滾動(dòng)后才出現(xiàn)
  • 頁(yè)面結(jié)構(gòu)發(fā)生變化

解決建議:

  • 使用瀏覽器開(kāi)發(fā)者工具檢查元素
  • 優(yōu)先使用穩(wěn)定的 id、name、data-* 屬性
  • 增加顯式等待
  • 如果元素在 iframe 中,先切換 iframe

2. 元素不可點(diǎn)擊

常見(jiàn)報(bào)錯(cuò):

ElementClickInterceptedException

可能原因:

  • 頁(yè)面彈窗遮擋
  • 按鈕還沒(méi)變成可點(diǎn)擊狀態(tài)
  • 頁(yè)面動(dòng)畫(huà)還沒(méi)結(jié)束

解決方式:

login_button = wait.until(
    EC.element_to_be_clickable((By.CSS_SELECTOR, "button[type='submit']"))
)
login_button.click()

3. 頁(yè)面有驗(yàn)證碼

如果登錄頁(yè)面有驗(yàn)證碼、短信驗(yàn)證碼、滑塊驗(yàn)證,不建議繞過(guò)驗(yàn)證碼。驗(yàn)證碼本身就是為了防止自動(dòng)化濫用。

企業(yè)內(nèi)部測(cè)試環(huán)境可以采用這些方式:

  • 測(cè)試環(huán)境關(guān)閉驗(yàn)證碼
  • 使用專(zhuān)門(mén)的測(cè)試賬號(hào)白名單
  • 后端提供測(cè)試登錄接口
  • 自動(dòng)化測(cè)試前寫(xiě)入測(cè)試登錄 Cookie

4. 瀏覽器啟動(dòng)失敗

可能原因:

  • Chrome 沒(méi)安裝
  • ChromeDriver 版本不匹配
  • Selenium 版本過(guò)舊
  • 驅(qū)動(dòng)路徑?jīng)]有配置

建議先升級(jí) Selenium:

pip install -U selenium

然后確認(rèn) Chrome 能正常打開(kāi)。

十二、自動(dòng)化辦公場(chǎng)景分析

Selenium 不只適合自動(dòng)化測(cè)試,也可以用于一些辦公自動(dòng)化場(chǎng)景。

1. 后臺(tái)系統(tǒng)自動(dòng)登錄

很多公司內(nèi)部系統(tǒng)需要每天登錄查看數(shù)據(jù),例如 CRM、ERP、OA、工單系統(tǒng)、數(shù)據(jù)看板等。Selenium 可以自動(dòng)登錄后臺(tái),進(jìn)入指定頁(yè)面。

2. 自動(dòng)導(dǎo)出報(bào)表

如果系統(tǒng)沒(méi)有開(kāi)放 API,但頁(yè)面上提供“導(dǎo)出 Excel”按鈕,可以使用 Selenium 自動(dòng)點(diǎn)擊篩選條件、選擇日期、點(diǎn)擊導(dǎo)出。

3. 頁(yè)面巡檢與截圖留檔

運(yùn)維或測(cè)試人員可以定時(shí)打開(kāi)多個(gè)業(yè)務(wù)頁(yè)面,檢查是否出現(xiàn)錯(cuò)誤提示,并自動(dòng)保存截圖。

4. 批量錄入表單

一些舊系統(tǒng)沒(méi)有批量導(dǎo)入功能,只能手動(dòng)填寫(xiě)網(wǎng)頁(yè)表單。Selenium 可以讀取 Excel 數(shù)據(jù),然后自動(dòng)填寫(xiě)網(wǎng)頁(yè)表單。

5. 自動(dòng)化回歸測(cè)試

開(kāi)發(fā)完成新功能后,可以用 Selenium 編寫(xiě)登錄、查詢(xún)、提交、刪除等流程測(cè)試腳本,減少人工回歸測(cè)試成本。

十三、自動(dòng)化測(cè)試代碼編寫(xiě)建議

初學(xué)者寫(xiě) Selenium 腳本時(shí),建議注意以下幾點(diǎn):

  • 不要把真實(shí)賬號(hào)密碼寫(xiě)死在代碼里
  • 盡量使用顯式等待
  • 優(yōu)先選擇穩(wěn)定的元素定位方式
  • 每個(gè)關(guān)鍵步驟后都做結(jié)果驗(yàn)證
  • 失敗時(shí)保存截圖
  • try...finally 確保瀏覽器最終關(guān)閉
  • 不要對(duì)公共網(wǎng)站進(jìn)行高頻自動(dòng)化請(qǐng)求
  • 遵守目標(biāo)網(wǎng)站的使用規(guī)則

一個(gè)好的自動(dòng)化腳本,不只是能跑通一次,而是能穩(wěn)定、可維護(hù)、容易定位問(wèn)題。

十四、總結(jié)

本文使用 Python + Selenium 完成了一個(gè)“瀏覽器自動(dòng)化測(cè)試與網(wǎng)頁(yè)自動(dòng)登錄”的入門(mén)實(shí)戰(zhàn)案例。

你已經(jīng)學(xué)習(xí)了:

  • Selenium 庫(kù)的作用
  • ChromeDriver 的安裝與配置
  • 如何自動(dòng)打開(kāi)網(wǎng)頁(yè)
  • 如何自動(dòng)輸入用戶(hù)名和密碼
  • 如何自動(dòng)點(diǎn)擊登錄按鈕
  • 常見(jiàn)元素定位方法
  • 顯式等待與隱式等待的區(qū)別
  • 如何自動(dòng)截圖保存
  • 一份完整的自動(dòng)登錄實(shí)戰(zhàn)代碼
  • Selenium 在自動(dòng)化辦公中的應(yīng)用場(chǎng)景

對(duì)于 Python 自動(dòng)化測(cè)試初學(xué)者來(lái)說(shuō),建議先從簡(jiǎn)單頁(yè)面練習(xí)元素定位、輸入、點(diǎn)擊和等待,再逐步擴(kuò)展到真實(shí)業(yè)務(wù)系統(tǒng)。

當(dāng)你掌握 Selenium 后,就可以把很多重復(fù)性的瀏覽器操作變成腳本,讓測(cè)試、辦公和數(shù)據(jù)處理流程更加高效。

以上就是Python+Selenium瀏覽器自動(dòng)化測(cè)試與網(wǎng)頁(yè)自動(dòng)登錄的詳細(xì)內(nèi)容,更多關(guān)于Python Selenium瀏覽器自動(dòng)化測(cè)試與登錄的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • python3.7 的新特性詳解

    python3.7 的新特性詳解

    這篇文章主要介紹了python3.7 的新特性詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • OpenCV 圖像繪制的實(shí)現(xiàn)

    OpenCV 圖像繪制的實(shí)現(xiàn)

    本文主要介紹了OpenCV 圖像繪制的實(shí)現(xiàn),主要包括直線,圓,多邊形和自定義圖形等,具有一定的參考價(jià)值,感興趣的可以了解一下
    2021-07-07
  • 使用Python實(shí)現(xiàn)分組數(shù)據(jù)并保存到單獨(dú)的文件中

    使用Python實(shí)現(xiàn)分組數(shù)據(jù)并保存到單獨(dú)的文件中

    當(dāng)處理大型數(shù)據(jù)集時(shí),通常需要將數(shù)據(jù)分組,并將每個(gè)分組的數(shù)據(jù)保存到單獨(dú)的文件中,本文將使用 Python 中的 pandas 庫(kù)來(lái)實(shí)現(xiàn)這一目標(biāo),需要的可以參考下
    2024-04-04
  • 基于Python實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)

    基于Python實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了基于Python實(shí)現(xiàn)簡(jiǎn)單學(xué)生管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-07-07
  • python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的 N 種方法

    python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的 N 種方法

    這兩天學(xué)習(xí)了python3實(shí)現(xiàn)抓取網(wǎng)頁(yè)資源的方法,發(fā)現(xiàn)了很多種方法,所以,今天添加一點(diǎn)小筆記。
    2017-05-05
  • Python字典和列表性能之間的比較

    Python字典和列表性能之間的比較

    今天給大家介紹的是Python列表和字典的相關(guān)知識(shí),文中對(duì)Python字典和列表的性能作了充分的比較,好奇的小伙伴們一起來(lái)看看吧,需要的朋友可以參考下
    2021-06-06
  • PyInstaller打包TkinterDnD應(yīng)用時(shí)窗口圖標(biāo)失效問(wèn)題的解決詳解

    PyInstaller打包TkinterDnD應(yīng)用時(shí)窗口圖標(biāo)失效問(wèn)題的解決詳解

    在使用 Python 的 Tkinter 庫(kù)開(kāi)發(fā)圖形用戶(hù)界面(GUI)應(yīng)用時(shí),為應(yīng)用設(shè)置一個(gè)獨(dú)特的圖標(biāo)是提升用戶(hù)體驗(yàn)的重要一步,但偶爾會(huì)遇到應(yīng)用窗口左上角的圖標(biāo)消失的問(wèn)題,下面我們就來(lái)看看如何解決吧
    2025-11-11
  • 如何利用python?turtle繪圖自定義畫(huà)布背景顏色

    如何利用python?turtle繪圖自定義畫(huà)布背景顏色

    Turtle庫(kù)是Python語(yǔ)言中一個(gè)很流行的繪制圖像的函數(shù)庫(kù),想象一個(gè)小烏龜,在一個(gè)橫軸為x、縱軸為y的坐標(biāo)系原點(diǎn),(0,0)位置開(kāi)始,這篇文章主要給大家介紹了關(guān)于如何利用python?turtle繪圖自定義畫(huà)布背景顏色的相關(guān)資料,需要的朋友可以參考下
    2021-12-12
  • Pytorch:dtype不一致問(wèn)題(expected dtype Double but got dtype Float)

    Pytorch:dtype不一致問(wèn)題(expected dtype Double but&

    這篇文章主要介紹了Pytorch:dtype不一致問(wèn)題(expected dtype Double but got dtype Float),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 使用Python計(jì)算兩個(gè)不同列表的相似度

    使用Python計(jì)算兩個(gè)不同列表的相似度

    這篇文章主要介紹了使用Python計(jì)算兩個(gè)不同列表的相似度,Python數(shù)據(jù)開(kāi)發(fā)工作中的需求兩個(gè)不同列表給出相似度,本文實(shí)現(xiàn)判斷數(shù)字類(lèi)型相似度和字符串類(lèi)型相似度,非常實(shí)用,需要的朋友可以參考下
    2023-07-07

最新評(píng)論

连江县| 杭锦旗| 邳州市| 德江县| 常州市| 崇礼县| 衡东县| 滁州市| 抚宁县| 依安县| 贵州省| 西吉县| 抚顺县| 眉山市| 千阳县| 灯塔市| 麻城市| 周至县| 南投市| 合江县| 汤阴县| 德州市| 桃源县| 屏东县| 五台县| 南通市| 馆陶县| 大英县| 米林县| 广东省| 西贡区| 饶平县| 米林县| 昂仁县| 钟山县| 全州县| 韶山市| 安新县| 万山特区| 宁乡县| 宜阳县|