(25)python+playwright自動化處理單選和多選按鈕-中

1.簡介

上一篇中講解和介紹的單選框有點多,而且由于時間的關系,決定今天講解和分享復選框的相關知識。

2.什么是單選框、復選框?

  單選按鈕一般叫raido button,就像我們在電子版的單選答題過程一樣,單選只能點擊一次,如果點擊其他的單選,之前單選被選中狀態就會變成未選中。單選按鈕的點擊,一樣是使用click方法。多選按鈕,就是復選框,一般叫checkbox,就像我們在電子版的多選答題過程一樣,可以選擇多個選項,多選按鈕的點擊,同樣是使用click方法。簡單地說,復選框可以允許你選擇多個設置,而單選框則允許你選擇一個設置。如下圖所示:

?

3.被測頁面html源代碼

3.1 radio.html

1.準備測試練習radio.html,如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>測試單選</title><style type="text/css">.button1 {background-color: #f44336; border: none;color: white;padding: 15px 32px;text-align: center;text-decoration: none;display: inline-block;font-size: 28px;margin: 20px 300px 50px 300px;text-decoration:none;color: white;}#myAnchor{text-decoration:none;color: white;}#hg{margin: 20px 300px 50px 300px;}</style>
</head>
<body><button class="button1"><a id="myAnchor" href="https://www.baidu.com">程序員的世界你不懂</a></button></br><div id="hg"><div><h3>復選框 checkbox</h3> 請選擇喜歡的打野英雄:<br><label><input name="checkbox1" type="checkbox" value="李白"/>李白 </label><br><label><input name="checkbox2" type="checkbox" value="韓信"/>韓信 </label><br><label><input name="checkbox3" type="checkbox" value="公孫離" checked="checked"/>公孫離 </label><br><label><input name="checkbox4" type="checkbox" value="露娜"/>露娜 </label><br></div><div><h3>單選框 radio</h3> 選擇喜歡的打野英雄:<br><label><input name="radio" type="radio" value="0" checked="checked"/>李白 </label><br><label><input name="radio" type="radio" value="1"/>韓信 </label><br><label><input name="radio" type="radio" value="2"/>露娜 </label><br><label><input name="radio" type="radio" value="3"/>孫尚香 </label><br></div></div>
</body>
</html>

2.頁面效果,如下圖所示:

上圖所示的就是我們最常見的radio單選框和checkbox多選框,playwright提供了一些處理單選框以及多選框的方法。

4.PlayWright選擇操作

playwright提供了一些處理單選框以及多選框的方法,如下:

locator.click() 點擊操作
locator.check() 選中
locator.uncheck() 不選中
locator.set_checked() 設置選中狀態
locator.is_checked() 判斷是否被選中

5.復選框操作

checkbox 復選框跟 radio 操作的區別在于,如果已經被選擇了,再點擊會被取消選中,所以不會有前面的報錯(在上一篇小結中提到的報錯)。以我們的html文件為例,如果李白已經被選中了再點擊李白會改變狀態變成不選中了,我們只點擊其他的按鈕不會改變其狀態。

5.1click()點擊操作

這里演示一下如何點擊“韓信”,其實是很簡單的,只需要定位到然后點擊即可。

5.1.1代碼設計

5.1.2參考代碼

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 選擇點擊 韓信page.locator('[value="韓信"]').click()page.wait_for_timeout(5000)# page.pause()browser.close()

5.1.3運行代碼

1.運行代碼,右鍵Run'Test',查看控制臺輸出

5.2is_check() 檢查操作

5.2.1代碼設計

5.2.2參考代碼

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)#判斷 公孫離 是否被選中(html默認設置是選中的)status1 = page.locator('[value="公孫離"]').is_checked()print(status1)# 選擇 露娜page.locator('[value="露娜"]').click()print(page.locator('[value="露娜"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.2.3運行代碼

1.運行代碼,右鍵Run'Test',控制臺輸出,如下圖所示:

5.3check()和uncheck()操作

感覺check()和click的用法差不多。

5.3.1代碼設計

5.3.2參考代碼

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 選擇孫尚香page.locator('[value="3"]').check()print(page.locator('[value="3"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.3.3運行代碼

1.運行代碼,右鍵Run'Test',查看控制臺輸出

5.4set_checked()操作

注:set_checked()需傳checked 參數,參數為布爾值。

5.4.1代碼設計

5.4.2參考代碼

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 選擇 韓信page.locator('[value="韓信"]').set_checked(checked=True)print(page.locator('[value="韓信"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.4.3運行代碼

1.運行代碼,右鍵Run'Test',控制臺輸出,如下圖所示:

2.運行代碼后電腦端的瀏覽器的動作。如下圖所示:

5.5調用page對象

5.5.1用法

page.click('[value="李白"]')
page.check('[value="韓信"]')
page.set_checked('[value="露娜"]', checked=True)

5.5.2代碼設計

5.5.3參考代碼

# coding=utf-8🔥
from playwright.sync_api import sync_playwrightwith sync_playwright() as p:browser = p.chromium.launch(headless=False)page = browser.new_page()page.goto("C:/Users/DELL/Desktop/test/radio.html")page.wait_for_timeout(3000)# 演示,為了看清選中,加了等待page.click('[value="李白"]')page.wait_for_timeout(5000)page.check('[value="韓信"]')page.wait_for_timeout(5000)page.set_checked('[value="露娜"]', checked=True)print(page.locator('[value="露娜"]').is_checked())page.wait_for_timeout(5000)# page.pause()browser.close()

5.5.4.運行代碼

1.運行代碼,右鍵Run'Test',控制臺輸出,如下圖所示:

6.小結

?有沒有感覺到,單選框和復選框在Playwright中使用差不多,除了前一篇中提到的報錯,這一個唯一的區別,其他大致一樣。

?

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

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

相關文章

Nginx IP授權頁面實現步驟

目標&#xff1a;一、創建白名單文件sudo mkdir -p /usr/local/nginx/conf/whitelist sudo touch /usr/local/nginx/conf/whitelist/temporary.conf二、創建Python認證服務文件路徑&#xff1a;/opt/script/auth_server.pyimport os import time from flask import Flask, requ…

2025年7月中科院一區-向光生長優化算法Phototropic growth algorithm-附Matlab免費代碼

引言 本期介紹一種新的元啟發式算法——向光生長優化算法Phototropic growth algorithm&#xff0c;PGA。靈感來自植物細胞在陽光下的生長模式。于2025年7月最新發表在JCR 1區&#xff0c;中科院1區 SCI 期刊 Knowledge-Based Systems。 該算法將生物學啟發的確定性生長行為與…

poi-excel-添加水印

1、官網快速指南 https://poi.apache.org/components/spreadsheet/quick-guide.html 訪問如上地址可以查看到poi的相關操作方式&#xff1a; How to create a new workbookHow to create a sheetHow to create cellsHow to create date cellsWorking with different types of…

STM32 開發的鼠標:技術詳解與實現指南

概述基于STM32微控制器開發的鼠標是一種高度可定化的輸入設備解決方案&#xff0c;廣泛應用于工業控制、嵌入式系統、特殊人機交互等領域。相比傳統鼠標&#xff0c;STM32鼠標具有以下優勢&#xff1a;高度可定制性&#xff1a;可添加特殊功能按鍵、傳感器集成低功耗設計&#…

GoLang教程007:打印空心金字塔

4.6 案例一&#xff1a;打印金字塔編寫一個程序&#xff0c;可以接收一個整數&#xff0c;表示層數&#xff0c;打印出金字塔。1??第一步&#xff1a;打印一個矩形 package mainimport "fmt"func main() {// i表示層數for i : 1; i < 3; i {// j表示每層打印多少…

iOS開發 Swift 速記3:運算符與控制結構

初級代碼游戲的專欄介紹與文章目錄-CSDN博客 我的github&#xff1a;codetoys&#xff0c;所有代碼都將會位于ctfc庫中。已經放入庫中我會指出在庫中的位置。 這些代碼大部分以Linux為目標但部分代碼是純C的&#xff0c;可以在任何平臺上使用。 源碼指引&#xff1a;github源…

ElasticSearch中需要注意的點,附官方文檔解讀

1.批量更新數量大小限制 https://www.elastic.co/guide/cn/elasticsearch/guide/current/bulk.html#_How_Big_Is_Too_Big 整個批量請求都需要由接收到請求的節點加載到內存中&#xff0c;因此該請求越大&#xff0c;其他請求所能獲得的內存就越少。批量請求的大小有一個最佳值…

Git GitHub精通:前端協作開發的“瑞士軍刀“!

前言&#xff1a;為什么你的代碼總是"失蹤"&#xff1f; "啊&#xff01;我的代碼呢&#xff1f;"——這可能是每個程序員都曾發出過的靈魂吶喊。還記得上周我熬夜寫的300行JavaScript&#xff0c;第二天醒來發現被自己手賤覆蓋了&#xff0c;那一刻我深刻…

第 30 場 藍橋·算法入門賽 題解

1. 零食爭議【算法賽】 簽到題&#xff1a;1-7奇數相加 #include <bits/stdc.h> using namespace std; int main() {// 請在此輸入您的代碼cout<<1357;return 0; } 2. 數字炸彈【算法賽】 把n個人看為前n-1和后n-1 &#xff0c; 方便找到是第幾段的第幾個數 #in…

閑庭信步使用圖像驗證平臺加速FPGA的開發:第二十四課——圖像直方圖均衡化的FPGA實現

&#xff08;本系列只需要modelsim即可完成數字圖像的處理&#xff0c;每個工程都搭建了全自動化的仿真環境&#xff0c;只需要雙擊top_tb.bat文件就可以完成整個的仿真&#xff0c;大大降低了初學者的門檻&#xff01;&#xff01;&#xff01;&#xff01;如需要該系列的工程…

LabVIEW 2025安裝包| 免費免激活版下載| 附圖文詳細安裝教程

[軟件名稱]&#xff1a;LabVIEW 2025 [軟件大小]&#xff1a;13 G [系統要求]&#xff1a;支持Win7及更高版本 [下載通道]:夸克網盤 [下載鏈接]: https://pan.quark.cn/s/7e9527cc06a3 &#xff08;建議用手機保存到網盤后&#xff0c;再用電腦下載&#xff09; 更多免費軟件&a…

如何實現泵站的無人值守:御控智慧水務平臺

在城鄉供水、農田灌溉、工業循環水等場景中&#xff0c;泵站作為核心動力設施&#xff0c;其運行效率直接影響水資源調配的穩定性。然而&#xff0c;傳統泵站管理長期面臨三大痛點&#xff1a;人力成本高昂&#xff1a;偏遠地區泵站需24小時值守&#xff0c;單站年均人力成本超…

深度學習篇---車道線循跡

要實現基于深度學習的雙車道線&#xff08;黃色車道線&#xff09;循跡&#xff08;通過預測四個輪子的轉速實現自主控制&#xff09;&#xff0c;需要從數據采集、模型設計、訓練策略、環境適應等多維度系統優化。以下是具體方案及需要注意的關鍵事項&#xff0c;旨在提升精準…

JavaScript,發生異常,try...catch...finally處理,繼續向上層調用者傳遞異常信息

JavaScript中&#xff0c;?異常&#xff08;Exception&#xff09;和錯誤&#xff08;Error&#xff09; JavaScript 是一種解釋型語言&#xff0c;通常在瀏覽器中通過JavaScript引擎執行。最著名的兩個引擎是&#xff1a;SpiderMonkey&#xff08;由 Mozilla Firefox 使用&a…

SpringMVC快速入門之啟動配置流程

SpringMVC快速入門之啟動配置流程一、SpringMVC啟動的核心流程二、環境準備與依賴配置2.1 開發環境2.2 Maven依賴配置三、初始化Servlet容器&#xff1a;WebApplicationInitializer3.1 實現WebApplicationInitializer3.2 配置編碼過濾器&#xff08;解決中文亂碼&#xff09;四…

ArcGIS水文及空間分析與SWMM融合協同在城市排水防澇領域中的應用

隨著計算機的廣泛應用和各類模型軟件的發展&#xff0c;將排水系統模型作為城市洪災評價與防治的技術手段已經成為防洪防災的重要技術途徑。將創新性融合地理信息系統&#xff08;GIS&#xff09;的空間分析能力與暴雨雨水管理模型&#xff08;SWMM&#xff09;的水動力計算優勢…

PHICOMM(斐訊)N1盒子 - Armbian25.05(Debian 12)刷入U盤/EMMC

PHICOMM(斐訊)N1盒子 - Armbian25.05(Debian 12)刷入U盤/EMMC 文章目錄PHICOMM(斐訊)N1盒子 - Armbian25.05(Debian 12)刷入U盤/EMMC前言1. 確保固件版本為2.192. 刷系統到U盤3. 啟動U盤系統4. U盤系統寫入EMMC5. 關機撥U盤6. 重新上電環境&#xff1a; 系統&#xff1a;Armbi…

《計算機網絡基礎知識全解析:從協議模型到通信實踐》

《計算機網絡基礎知識全解析&#xff1a;從協議模型到通信實踐》 在數字化時代&#xff0c;計算機網絡是信息傳遞的基石&#xff0c;從日常瀏覽網頁到企業數據交互&#xff0c;都離不開網絡協議的規范與支撐。本文將系統梳理計算機網絡的核心知識&#xff0c;從通信模型到具體協…

【補題】Codeforces Global Round 26 E. Shuffle

題意&#xff1a;給出一棵樹&#xff0c;按照以下方式操作 對于當前的所有任意子樹&#xff0c;選出任何一個點從中刪除&#xff0c;然后作為新子樹的根插入到新的樹中&#xff0c;以此遞歸往復&#xff0c;直到原來的樹中節點全部進入新樹&#xff0c;問新樹最多有多少個葉子節…

金倉數據庫風云

O 記我用了這么多年&#xff0c;我最有發言權&#xff0c;我可不敢替&#xff0c;你們誰能搞定&#xff0c;誰上。” 老鄧在會上&#xff0c;狠狠甩了一句氣話。老鄧&#xff08;鄧銘&#xff09;&#xff0c;某大型期貨交易所信息化主管&#xff0c;數據庫老司機。 作為圈里最…