鴻蒙語言基礎類庫:【@ohos.uitest (UiTest)】 測試

UiTest

UiTest提供模擬UI操作的能力,供開發者在測試場景使用,主要支持如點擊、雙擊、長按、滑動等UI操作能力。

該模塊提供以下功能:

  • [By]:提供控件特征描述能力,用于控件篩選匹配查找。
  • [UiComponent]:代表UI界面上的指定控件,提供控件屬性獲取,控件點擊,滑動查找,文本注入等能力。
  • [UiDriver]:入口類,提供控件匹配/查找,按鍵注入,坐標點擊/滑動,截圖等能能力。

說明:
開發前請熟悉鴻蒙開發指導文檔gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md點擊或者復制轉到。
本模塊首批接口從API version 8開始支持。后續版本的新增接口,采用上角標單獨標記接口的起始版本。

導入模塊

import {UiDriver,BY,MatchPattern} from '@ohos.uitest'

By

UiTest框架通過By類提供了豐富的控件特征描述API,用以進行控件篩選來匹配/查找出目標控件。
By提供的API能力具有以下幾個特點:
1、支持單屬性匹配和多屬性組合匹配,例如同時指定目標控件text和id。
2、控件屬性支持多種匹配模式。
3、支持控件絕對定位,相對定位,可通過[By.isBefore]和[By.isAfter]等API限定鄰近控件特征進行輔助定位。
By類提供的所有API均為同步接口,建議使用者通過靜態構造器BY來鏈式創建By對象。

BY.text('123').type('button')

text

text(txt: string, pattern?: MatchPattern): By

指定目標控件文本屬性,支持多種匹配模式,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
txtstring指定控件文本,用于匹配目標控件文本。
patternMatchPattern指定的文本匹配模式,默認為[EQUALS]

返回值:

類型說明
By返回By對象自身

示例:

let by = BY.text('123') //使用靜態構造器BY創建by對象,指定目標控件的text屬性。

key

key(key: string): By

指定目標控件key值屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
keystring指定控件的Key值。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.key('123') //使用靜態構造器BY創建by對象,指定目標控件的key值屬性。

id

id(id: number): By

指定目標控件id屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
idnumber指定控件的id值。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.id(123) //使用靜態構造器BY創建by對象,指定目標控件的id屬性。

type

type(tp: string): By

指定目標控件的控件類型屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
tpstring指定控件類型。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.type('button') //使用靜態構造器BY創建by對象,指定目標控件的控件類型屬性。

clickable

clickable(b?: bool): By

指定目標控件的可點擊狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool指定控件可點擊狀態,默認為true。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.clickable(true) //使用靜態構造器BY創建by對象,指定目標控件的可點擊狀態屬性。

longClickable9+

longClickable(b?: bool): By

指定目標控件的可長按點擊狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool指定控件可長按點擊狀態,默認為true。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.longClickable(true) //使用靜態構造器BY創建by對象,指定目標控件的可長按點擊狀態屬性。

scrollable

scrollable(b?: bool): By

指定目標控件的可滑動狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool控件可滑動狀態,默認為true。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.scrollable(true) //使用靜態構造器BY創建by對象,指定目標控件的可滑動狀態屬性。

enabled

enabled(b?: bool): By

指定目標控件的使能狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool指定控件使能狀態,默認為true。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.enabled(true) //使用靜態構造器BY創建by對象,指定目標控件的使能狀態屬性。

focused

focused(b?: bool): By

指定目標控件的獲焦狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool控件獲焦狀態,默認為true。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.focused(true) //使用靜態構造器BY創建by對象,指定目標控件的獲焦狀態屬性。

selected

selected(b?: bool): By

指定目標控件的被選中狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool指定控件被選中狀態,默認為true。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.selected(true) //使用靜態構造器BY創建by對象,指定目標控件的被選中狀態屬性。

checked9+

checked(b?: bool): By

指定目標控件的被勾選狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool指定控件被勾選狀態,默認為false。

返回值:

類型說明
By返回By對象自身

示例:

let by = BY.checked(true) //使用靜態構造器BY創建by對象,指定目標控件的被勾選狀態屬性

checkable9+

checkable(b?: bool): By

指定目標控件能否被勾選狀態屬性,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
bbool指定控件能否被勾選狀態,默認為false。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.checkable(true) //使用靜態構造器BY創建by對象,指定目標控件的能否被勾選狀態屬性。

isBefore

isBefore(by: By): By

指定目標控件位于給出的特征屬性控件之前,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy特征控件的屬性。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.isBefore(BY.text('123')) //使用靜態構造器BY創建by對象,指定目標控件位于給出的特征屬性控件之前。

isAfter

isAfter(by: By): By

指定目標控件位于給出的特征屬性控件之后,返回By對象自身。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy特征控件的屬性。

返回值:

類型說明
By返回By對象自身。

示例:

let by = BY.isAfter(BY.text('123')) //使用靜態構造器BY創建by對象,指定目標控件位于給出的特征屬性控件之后。

UiComponent

UiTest中,UiComponent類代表了UI界面上的一個控件,提供控件屬性獲取,控件點擊,滑動查找,文本注入等API。 該類提供的所有方法都使用Promise方式作為異步方法,需使用await調用。

Rect9+

控件的邊框信息。

名稱參數類型可讀可寫描述
leftXnumber控件邊框的左上角的X坐標。
topYnumber控件邊框的左上角的Y坐標。
rightXnumber控件邊框的右下角的X坐標。
bottomYnumber控件邊框的右下角的Y坐標。

click

click(): Promise

控件對象進行點擊操作。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))await button.click()
}

doubleClick

doubleClick(): Promise

控件對象進行雙擊操作。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))await button.doubleClick()
}

longClick

longClick(): Promise

控件對象進行長按操作。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))await button.longClick()
}

getId

getId(): Promise

獲取控件對象的id值。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回的控件的id值。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))let num = await button.getId()
}

getKey

getKey(): Promise

獲取控件對象的key值。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件的key值。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))let str_key = await button.getKey()
}

getText

getText(): Promise

獲取控件對象的文本信息。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件的文本信息。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))let text = await button.getText()
}

getType

getType(): Promise

獲取控件對象的控件類型。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件的類型。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))let type = await button.getType()
}

getBounds9+

getBounds(): Promise

獲取控件對象的邊框信息。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise 以Promise形式返回控件對象的邊框信息。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))let rect = await button.getBounds()
}

isClickable

isClickable(): Promise

獲取控件對象可點擊狀態。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件對象可點擊狀態。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))if(await button.isClickable()) {console.info('This button can be Clicked')}else{console.info('This button can not be Clicked')}
}

isLongClickable9+

isLongClickable(): Promise

獲取控件對象可長按點擊狀態。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件對象能否長按點擊狀態。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))if(await button.isLongClickable()) {console.info('This button can longClick')}else{console.info('This button can not longClick')}
}

isChecked9+

isChecked(): Promise

獲取控件對象被勾選狀態。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件對象被勾選狀態。

示例:

async function demo() {let driver = UiDriver.create()let checkBox = await driver.findComponent(BY.type('Checkbox'))if(await checkBox.isChecked) {console.info('This checkBox is checked')}else{console.info('This checkBox is not checked')}
}

isCheckable9+

isCheckable(): Promise

獲取控件對象能否被勾選的屬性。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件對象能否被勾選的屬性。

示例:

async function demo() {let driver = UiDriver.create()let checkBox = await driver.findComponent(BY.type('Checkbox'))if(await checkBox.isCheckable) {console.info('This checkBox is checkable')}else{console.info('This checkBox is not checkable')}
}

isScrollable

isScrollable(): Promise

獲取控件對象可滑動狀態。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件對象可滑動狀態。

示例:

async function demo() {let driver = UiDriver.create()let scrollBar = await driver.findComponent(BY.scrollable(true))if(await scrollBar.isScrollable()) {console.info('This scrollBar can be operated')}else{console.info('This scrollBar can not be operated')}
}

isEnabled

isEnabled(): Promise

獲取控件使能狀態。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件使能狀態。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))if(await button.isEnabled()) {console.info('This button can be operated')}else{console.info('This button can not be operated')}
}

isFocused

isFocused(): Promise

判斷控件對象是否獲焦。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise以Promise形式返回控件對象是否獲焦。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))if(await button.isFocused()) {console.info('This button is focused')}else{console.info('This button is not focused')}
}

isSelected

isSelected(): Promise

獲取控件對象被選中狀態。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
Promise控件對象被選中的狀態

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))if(await button.isSelected()) {console.info('This button is selected')}else{console.info('This button is not selected')}
}

inputText

inputText(text: string): Promise

向控件中輸入文本(適用于文本框控件)。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
textstring輸入的文本信息。

示例:

async function demo() {let driver = UiDriver.create()let text = await driver.findComponent(BY.text('hello world'))await text.inputText('123')
}

clearText9+

clearText(): Promise

清除控件的文本信息(適用于文本框控件)。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()let text = await driver.findComponent(BY.text('hello world'))await text.clearText()
}

scrollSearch

scrollSearch(by: By): Promise

在控件上滑動查找目標控件(適用于List等支持滑動的控件)。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy目標控件的屬性要求。

返回值:

類型說明
Promise以Promise形式返回找到的目標控件對象。

示例:

async function demo() {let driver = UiDriver.create()let scrollBar = await driver.findComponent(BY.type('Scroll'))let button = await scrollBar.scrollSearch(BY.text('next page'))
}

scrollToTop9+

scrollToTop(): Promise

在控件上滑動到頂部(適用于List等支持滑動的控件)。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()let scrollBar = await driver.findComponent(BY.type('Scroll'))await scrollBar.scrollToTop()
}

scrollToBottom9+

scrollToBottom(): Promise

在控件上滑動到底部(適用于List等支持滑動的控件)。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()let scrollBar = await driver.findComponent(BY.type('Scroll'))await scrollBar.scrollToBottom()
}

dragTo9+

dragTo(target: UiComponent): Promise

將控件拖拽至目標控件處。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
targetUiComponent目標控件。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.type('button'))let text = await driver.findComponent(BY.text('hello world'))await button.dragTo(text)}

UiDriver

UiDriver類為uitest測試框架的總入口,提供控件匹配/查找,按鍵注入,坐標點擊/滑動,截圖等API。 該類提供的方法除UiDriver.create()以外的所有方法都使用Promise方式作為異步方法,需使用await調用。

create

static create(): UiDriver

靜態方法,構造一個UiDriver對象,并返回該對象。

系統能力:SystemCapability.Test.UiTest

返回值:

類型說明
UiDrive返回構造的UiDriver對象。

示例:

async function demo() {let driver = UiDriver.create()
}

delayMs

delayMs(duration: number): Promise

UiDriver對象在給定的時間內延時。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
durationnumber給定的時間。

示例:

async function demo() {let driver = UiDriver.create()await driver.delayMs(1000)
}

findComponent

findComponent(by: By): Promise

在UiDriver對象中,根據給出的目標控件屬性要求查找目標控件。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy目標控件的屬性要求。

返回值:

類型說明
Promise以Promise形式返回找到的控件對象。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.findComponent(BY.text('next page'))
}

findComponents

findComponents(by: By): Promise<Array>

在UiDriver對象中,根據給出的目標控件屬性要求查找出所有匹配控件,以列表保存。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy目標控件的屬性要求。

返回值:

類型說明
Promise<Array>以Promise形式返回找到的控件對象的列表。

示例:

async function demo() {let driver = UiDriver.create()let buttonList = await driver.findComponents(BY.text('next page'))
}

waitForComponent9+

waitForComponent(by: By, time: number): Promise

在UiDriver對象中,在用戶給定的時間內,持續查找滿足控件屬性要求的目標控件。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy目標控件的屬性要求。
timenumber查找目標控件的持續時間。單位ms。

返回值:

類型說明
Promise以Promise形式返回找到的控件對象。

示例:

async function demo() {let driver = UiDriver.create()let button = await driver.waitForComponent(BY.text('next page'),500)
}

assertComponentExist

assertComponentExist(by: By): Promise

斷言API,用于斷言當前界面存在滿足給出的目標控件屬性的控件; 如果控件不存在,該API將拋出JS異常,使當前測試用例失敗。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
byBy目標控件的屬性要求。

示例:

async function demo() {let driver = UiDriver.create()await driver.assertComponentExist(BY.text('next page'))
}

pressBack

pressBack(): Promise

UiDriver對象進行點擊BACK鍵的操作。

系統能力:SystemCapability.Test.UiTest

示例:

async function demo() {let driver = UiDriver.create()await driver.pressBack()
}

triggerKey

triggerKey(keyCode: number): Promise

UiDriver對象采取如下操作:通過key值找到對應鍵并點擊。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
keyCodenumber指定的key值。

示例:

async function demo() {let driver = UiDriver.create()await driver.triggerKey(123)
}

click

click(x: number, y: number): Promise

UiDriver對象采取如下操作:在目標坐標點單擊。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
xnumber以number的形式傳入目標點的橫坐標信息。
ynumber以number的形式傳入目標點的縱坐標信息。

示例:

async function demo() {let driver = UiDriver.create()await driver.click(100,100)
}

doubleClick

doubleClick(x: number, y: number): Promise

UiDriver對象采取如下操作:在目標坐標點雙擊。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
xnumber以number的形式傳入目標點的橫坐標信息。
ynumber以number的形式傳入目標點的縱坐標信息。

示例:

async function demo() {let driver = UiDriver.create()await driver.doubleClick(100,100)
}

longClick

longClick(x: number, y: number): Promise

UiDriver對象采取如下操作:在目標坐標點長按下鼠標左鍵。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
xnumber以number的形式傳入目標點的橫坐標信息。
ynumber以number的形式傳入目標點的縱坐標信息。

示例:

async function demo() {let driver = UiDriver.create()await driver.longClick(100,100)
}

swipe

swipe(startx: number, starty: number, endx: number, endy: number): Promise

UiDriver對象采取如下操作:從給出的起始坐標點滑向給出的目的坐標點。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
startxnumber以number的形式傳入起始點的橫坐標信息。
startynumber以number的形式傳入起始點的縱坐標信息。
endxnumber以number的形式傳入目的點的橫坐標信息。
endynumber以number的形式傳入目的點的縱坐標信息。

示例:

async function demo() {let driver = UiDriver.create()await driver.swipe(100,100,200,200)
}

drag9+

drag(startx: number, starty: number, endx: number, endy: number): Promise

UiDriver對象采取如下操作:從給出的起始坐標點拖拽至給出的目的坐標點。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
startxnumber以number的形式傳入起始點的橫坐標信息。
startynumber以number的形式傳入起始點的縱坐標信息。
endxnumber以number的形式傳入目的點的橫坐標信息。
endynumber以number的形式傳入目的點的縱坐標信息。

示例:

async function demo() {let driver = UiDriver.create()await driver.drag(100,100,200,200)
}

screenCap

screenCap(savePath: string): Promise

UiDriver對象采取如下操作:捕獲當前屏幕,并保存為PNG格式的圖片至給出的保存路徑中。

系統能力:SystemCapability.Test.UiTest

參數:

參數名類型必填說明
savePathstring文件保存路徑。

返回值:

在這里插入圖片描述

類型說明 HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
Promise截圖操作是否成功完成。成功完成為true。

示例:

async function demo() {let driver = UiDriver.create()await driver.screenCap('/local/tmp/')
}

MatchPattern

控件屬性支持的匹配模式。

系統能力:以下各項對應的系統能力均為SystemCapability.Test.UiTest

名稱說明
EQUALS0等于給定值。
CONTAINS1包含給定值。
STARTS_WITH2從給定值開始。
ENDS_WITH3以給定值結束。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45452.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45452.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45452.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

實驗四:圖像的銳化處理

目錄 一、實驗目的 二、實驗原理 1. 拉普拉斯算子 2. Sobel算子 3. 模板大小對濾波的影響 三、實驗內容 四、源程序和結果 (1) 主程序(matlab) (2) 函數GrayscaleFilter (3) 函數MatrixAbs 五、結果分析 1. 拉普拉斯濾波 2. Sobel濾波 3. 不同大小模板的濾波…

單點登陸思路及流程

單點登錄&#xff08;Single Sign-On&#xff0c;簡稱SSO&#xff09;是一種流行的身份驗證和授權機制&#xff0c;允許用戶通過一次登錄獲得對多個應用程序或系統的訪問權限。實現單點登錄可以提高用戶體驗、簡化用戶管理和減少密碼重復輸入等問題。下面是一種常見的單點登錄實…

昇思25天學習打卡營第7天 | 基于MindSpore的GPT2文本摘要

本次打卡基于gpt2的文本摘要 數據加載及預處理 from mindnlp.utils import http_get# download dataset url https://download.mindspore.cn/toolkits/mindnlp/dataset/text_generation/nlpcc2017/train_with_summ.txt path http_get(url, ./)from mindspore.dataset impor…

以太坊(以太坊solidity合約)

以太坊&#xff08;以太坊solidity合約&#xff09; 1&#xff0c;以太坊2&#xff0c;開發名詞解釋&#xff08;1&#xff09;錢包&#xff08;2&#xff09;Solidity&#xff08;3&#xff09;Ether&#xff08;以太幣&#xff09;&#xff08;4&#xff09;Truffle&#xff…

Redis 7.x 系列【23】哨兵模式

有道無術&#xff0c;術尚可求&#xff0c;有術無道&#xff0c;止于術。 本系列Redis 版本 7.2.5 源碼地址&#xff1a;https://gitee.com/pearl-organization/study-redis-demo 文章目錄 1. 概述2. 工作原理2.1 監控2.2 標記下線2.3 哨兵領袖2.4 新的主節點2.5 通知更新 3. …

請求響應(后端必備)

一、請求 1.簡單參數 原始方式&#xff1a; 在原始的web程序中&#xff0c;獲取請求參數&#xff0c;需要通過HttpServletRequest對象手動獲取 RequestMapping("/simpleParam")public String simpleParam(HttpServletRequest request){String name request.getP…

什么叫價內期權?直接帶你了解期權價內期權怎么使用?!

今天帶你了解什么叫價內期權&#xff1f;直接帶你了解期權價內期權怎么使用&#xff1f;&#xff01;價內期權是具有內在價值的期權。期權持有人行權時&#xff0c;對看漲期權而言&#xff0c;行權價格低于標的證券結算價格&#xff1b;對看跌期權而言&#xff0c;標的證券結算…

js 請求blob:https:// 圖片

方式1 def get_file_content_chrome(driver, uri):result driver.execute_async_script("""var uri arguments[0];var callback arguments[1];var toBase64 function(buffer){for(var r,nnew Uint8Array(buffer),tn.length,anew Uint8Array(4*Math.ceil(t/…

前端Vue組件化實踐:自定義加載組件的探索與應用

在前端開發領域&#xff0c;隨著業務邏輯復雜度的提升和系統規模的不斷擴大&#xff0c;傳統的開發方式逐漸暴露出效率低下、維護困難等問題。為了解決這些挑戰&#xff0c;組件化開發作為一種高效、靈活的開發模式&#xff0c;受到了越來越多開發者的青睞。本文將結合實踐&…

Java基礎及進階

JAVA特性 基礎語法 一、Java程序的命令行工具 二、final、finally、finalize 三、繼承 class 父類 { //代碼 }class 子類 extends 父類 { //代碼 }四、Vector、ArrayList、LinkedList 五、原始數據類型和包裝類 六、接口和抽象類 JAVA進階 Java引用隊列 Object counter ne…

PostgreSQL行級安全策略探究

前言 最近和朋友討論oracle行級安全策略(VPD)時&#xff0c;查看了下官方文檔&#xff0c;看起來VPD的原理是針對應用了Oracle行級安全策略的表、視圖或同義詞發出的 SQL 語句動態添加where子句。通俗理解就是將行級安全策略動態添加為where 條件。那么PG中的行級安全策略是怎…

搭建基于 ChatGPT 的問答系統

搭建基于 ChatGPT 的問答系統 &#x1f4e3;1.簡介&#x1f4e3;2.語言模型&#xff0c;提問范式和 token?2.1語言模型?2.2Tokens?2.3Helper function輔助函數&#xff08;提問范式&#xff09; &#x1f4e3;3.評估輸入-分類&#x1f4e3;4.檢查輸入-審核?4.1審核4.1.1 我…

使用UDP通信接收與發送Mavlink2.0協議心跳包完整示例

1.克隆mavlink源碼 https://github.com/mavlink/mavlink.git 2.進入mavlink目錄,安裝依賴 python3 -m pip install -r pymavlink/requirements.txt 3.生成Mavlink的C頭文件 mavlink % python3 -m pymavlink.tools.mavgen --lang=C --wire-protocol=2.0 --output=generated…

1-5歲幼兒胼胝體的表面形態測量

摘要 胼胝體(CC)是大腦中的一個大型白質纖維束&#xff0c;它參與各種認知、感覺和運動過程。盡管CC與多種發育和精神疾病有關&#xff0c;但關于這一結構的正常發育(特別是在幼兒階段)還有很多待解開的謎團。雖然早期文獻中報道了性別二態性&#xff0c;但這些研究的觀察結果…

【Linux網絡】select{理解認識select/select與多線程多進程/認識select函數/使用select開發并發echo服務器}

文章目錄 0.理解/認識回顧回調函數select/pollread與直接使用 read 的效率差異 1.認識selectselect/多線程&#xff08;Multi-threading&#xff09;/多進程&#xff08;Multi-processing&#xff09;select函數socket就緒條件select的特點總結 2.select下echo服務器封裝套接字…

C++ 類和對象 賦值運算符重載

前言&#xff1a; 在上文我們知道數據類型分為自定義類型和內置類型&#xff0c;當我想用內置類型比較大小是非常容易的但是在C中成員變量都是在類(自定義類型)里面的&#xff0c;那我想給類比較大小那該怎么辦呢&#xff1f;這時候運算符重載就出現了 一 運算符重載概念&…

安全防御:防火墻基本模塊

目錄 一、接口 1.1 物理接口 1.2 虛擬接口 二、區域 三、模式 3.1 路由模式 3.2 透明模式 3.3 旁路檢測模式 3.4 混合模式 四、安全策略 五、防火墻的狀態檢測和會話表技術 一、接口 1.1 物理接口 三層口 --- 可以配置IP地址的接口 二層口&#xff1a; 普通二層…

Java面試題:分庫分表

分庫分表 當數據量非常大時,就需要通過分庫分表的方式進行壓力分攤,避免數據庫訪問壓力過大 分庫分表的前提: 業務數據達到一定量級:單表數據量達到1000w或20g 優化解決不了性能問題 分庫分表策略 垂直拆分 垂直分庫 以表為依據,根據業務將不同表拆分到不同庫中 eg:根…

車載終端_RTK定位|4路攝像頭|駕駛輔助系統ADAS定制方案

現代車輛管理行業的發展趨勢逐漸向智能化和高效化方向發展&#xff0c;車載終端成為關鍵的工具之一。在這個背景下&#xff0c;一款特別為車隊管理行業設計的車載終端應運而生。該車載終端采用8寸多點觸控電容屏&#xff0c;搭載聯發科四核處理器&#xff0c;主頻2.0GHz&#x…