Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作步驟
1 準(zhǔn)備
推薦使用Chrome瀏覽器
1.1 安裝selenium程序包
激活虛擬環(huán)境,打開新的Terminal,輸入以下代碼:
python -m pip install selenium
如下圖所示,表示安裝成功,版本為4.7.2

關(guān)閉虛擬環(huán)境,打開新的Terminal
1.2 引入函數(shù)模塊
#引入time模塊,實(shí)現(xiàn)延時(shí) import time #引入selenium庫中的webdriver模塊,實(shí)現(xiàn)對(duì)網(wǎng)頁的操作 from selenium import webdriver #引入By Class,輔助元素定位 from selenium.webdriver.common.by import By #引入ActionChains Class,輔助鼠標(biāo)移動(dòng) from selenium.webdriver.common.action_chains import ActionChains
2 實(shí)現(xiàn)
2.1 打開網(wǎng)頁
#打開谷歌瀏覽器
driver = webdriver.Chrome()
#打開網(wǎng)頁
driver.get('URL') #將URL替換為需要操作的網(wǎng)址2.2 元素定位
要想實(shí)現(xiàn)對(duì)網(wǎng)頁的控制,需要首先定位網(wǎng)頁上的元素,一般為搜索框、選項(xiàng)、按鈕等。
selenium 4.0以上的版本更新了元素定位方式,要用到find_element函數(shù),用法舉例如下:
el = driver.find_element(By.NAME, "*")
首先要獲取元素的信息:
打開網(wǎng)頁后,按F12,打開元素審查窗口

點(diǎn)擊窗口中紅框標(biāo)出的圖標(biāo),即可在頁面上選擇需要定位的元素,查看其代碼。
一般需要定位的元素代碼都以input開頭,下圖為搜索框的代碼,從代碼中可以提取定位元素所需要的信息:

根據(jù)下列信息均可以定位元素,但要保證根據(jù)該信息可以唯一定位到該元素:
| By. | * |
|---|---|
| NAME | name=“*” |
| CLASS_NAME | class_name=“*” |
| ID | id=“*” |
| TAG_NAME | tag_name=“*” |
| LINK_TEXT | |
| PARTIAL_LINK_TEXT | |
| CSS_SELECTOR | |
| XPATH | Copy full XPath |
如果根據(jù)其他信息無法唯一定位該元素,可以采取XPath定位,XPath的獲取方式比較特殊,需要右鍵單擊該代碼行,在下拉列表中選擇Copy full XPath,如下圖所示:

2.3 元素控制
定位到元素后,可以進(jìn)行下列操作,實(shí)現(xiàn)對(duì)元素的控制:
| method | 功能 |
|---|---|
| click() | 點(diǎn)擊 |
| send_keys(‘*’) | 輸入 |
| clear() | 清空 |
以輸入文字為例,代碼如下(*為需要輸入的文字):
el.send_keys('*')如果打開網(wǎng)頁時(shí),需要控制的元素不在可視范圍內(nèi),需要滑動(dòng)鼠標(biāo)定位,則要借助于ActionChains,否則可能會(huì)報(bào)錯(cuò):找不到該元素。
ActionChains(driver).move_to_element(el).click().perform() el.click()
上述示例為點(diǎn)擊操作,其中第二行最好加上,確保點(diǎn)到該元素
另外一種找不到元素的原因可能是網(wǎng)頁還沒有加載完畢,此時(shí)就可以借助于延時(shí)功能:
time.sleep(1)
2.4 彈出框的處理
如果點(diǎn)擊按鈕后,不是打開一個(gè)新的頁面,而是彈出了一個(gè)窗口,需要在新的窗口中操作,則需要通過如下代碼轉(zhuǎn)到新的frame下,否則可能會(huì)報(bào)錯(cuò):找不到該元素。
driver.switch_to.frame(0)
隨后繼續(xù)按2.2定位元素即可。
到此這篇關(guān)于Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁操作步驟的文章就介紹到這了,更多相關(guān)Python 自動(dòng)化網(wǎng)頁操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django app配置多個(gè)數(shù)據(jù)庫代碼實(shí)例
這篇文章主要介紹了Django app配置多個(gè)數(shù)據(jù)庫代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
pycharm快捷鍵自動(dòng)提示documentation問題(auto?Ctrl+Q)
這篇文章主要介紹了pycharm快捷鍵自動(dòng)提示documentation問題(auto?Ctrl+Q),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04
es+flask搜索小項(xiàng)目實(shí)現(xiàn)分頁+高亮的示例代碼
本文主要介紹了es+flask搜索小項(xiàng)目實(shí)現(xiàn)分頁+高亮的示例代碼,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開
這篇文章主要介紹了Jupyter notebook如何實(shí)現(xiàn)指定瀏覽器打開,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
python實(shí)現(xiàn)一個(gè)簡單RPC框架的示例
本文將會(huì)使用Python實(shí)現(xiàn)一個(gè)最簡單的RPC框架,不具有實(shí)用意義,但可以讓你清醒地理解RPC框架的幾個(gè)組成部分,只是比看Python自帶的xmlrpc清晰。2020-10-10
詳解Python中使用base64模塊來處理base64編碼的方法
8bit的bytecode經(jīng)常會(huì)被用base64編碼格式保存,Python中自帶base64模塊對(duì)base64提供支持,這里我們就來詳解Python中使用base64模塊來處理base64編碼的方法,需要的朋友可以參考下2016-07-07
Python使用DrissionPage中ChromiumPage進(jìn)行自動(dòng)化網(wǎng)頁操作
DrissionPage 作為一款輕量級(jí)且功能強(qiáng)大的瀏覽器自動(dòng)化庫,為開發(fā)者提供了豐富的功能支持,本文將使用DrissionPage中ChromiumPage進(jìn)行自動(dòng)化網(wǎng)頁操作,希望對(duì)大家有所幫助2025-03-03

