基于aardio web.view2庫和python playwright包的內嵌瀏覽器自動化操作

通過cdp協議可以實現playwright操控webview。
1

新建Python窗口工程

1

修改pip.aardio

修改pip.aardio,并執行,安裝playwright。

//安裝模塊
import process.python.pip;
//process.python.path = "python.exe";/*
安裝模塊。
參數可以用一個字符串指定多個 pip 參數,參數以空格分開。
也可以用多個 aardio 參數指定多個 pip 參數,aardio 自動合并所有參數并自動處理轉義。
*/
process.python.pip("install playwright");//如果指定的模塊未安裝,則調用 pip 安裝
// process.python.pip.require("請指定要安裝的模塊名稱");console.pause();

實現playwright操控webview

import win.ui;
/*DSG{{*/
mainForm = win.form(text="playwright測試";right=957;bottom=708)
mainForm.add()
/*}}*/import web.view2;
//第4個參數為0則開啟遠程端口,取空閑端口號
wb = web.view2(mainForm,,0);import string.templatehtml1 = `
from playwright.sync_api import Playwright, sync_playwright, expectdef run(playwright: Playwright) -> None:# 使用chromium.connect_over_cdp遠程連接webviewbrowser = playwright.chromium.connect_over_cdp("http://127.0.0.1:${port}")context = browser.contexts[0]page = context.pages[0]page.goto("https://www.baidu.com/")page.locator("#kw").click()page.locator("#kw").fill("附加webview測試")page.get_by_role("button", name="百度一下").click()with sync_playwright() as playwright:run(playwright)`
html = string.template(html1).format(port = wb.remoteDebuggingPort;
)import process.python;process.python.version = "3.9.13";
process.python.win32 = true;process.python.exec(html);mainForm.show();
return win.loopMessage();

相關鏈接

https://mp.weixin.qq.com/s/F6sLUiY0v0YWyYDYSO2L4Q

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

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

相關文章

雅思詞匯及發音積累 2024.7.5

1.province 省 2.state 州 3.county 縣 4.cost of living 生活費用 5.crime 犯罪 6.pace of life 生活節奏 7.interesting 有意思的 8.boring/dull /d?l/ 煩悶的 9.main/primary/leading industry 主要產業 10.Manufacturing /?mnju?fkt??r??/ 制造 11.proc…

Linux系統的基礎知識和常用命令

1、什么是Linux? 是一種免費使用和自由傳播的類UNIX操作系統,其內核由林納斯本納第克特托瓦茲于1991年10月5日首次發布,它主要受到Minix和Unix思想的啟發,是一個基于POSIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行…

【面向就業的Linux基礎】從入門到熟練,探索Linux的秘密(十)-git(2)

下面是一些git的常用命令和基本操作,可以當做平常的筆記查詢,用于學習!!! 文章目錄 前言 一、git 二、git常用命令 總結 前言 下面是一些git的常用命令和基本操作,可以當做平常的筆記查詢,用于…

關于項目中的數據安全的一些理解

一、介紹 項目建設中數據安全是非常重要的一環,但是大家對于數據安全這個主題可能不夠了解,從而在項目的整個生命周期中,產生一些的安全問題。 這里按照個人經驗、查閱資料、國家標準等,總結了一些對于數據安全的看法。 二、國家標準 國家針對信息安全,發布了一系列的標準…

深入了解 PXE:定義、架構、原理、應用場景及常見命令體系

引言 PXE(Preboot Execution Environment,預啟動執行環境)是一種允許計算機通過網絡啟動操作系統而無需本地存儲設備的技術。本文將詳細介紹 PXE 的定義、架構、原理、應用場景及常見命令體系,特別是以 CentOS 為例,展…

【MindSpore學習打卡】應用實踐-計算機視覺-深入解析 Vision Transformer(ViT):從原理到實踐

在近年來的深度學習領域,Transformer模型憑借其在自然語言處理(NLP)中的卓越表現,迅速成為研究熱點。尤其是基于自注意力(Self-Attention)機制的模型,更是推動了NLP的飛速發展。然而&#xff0c…

歐拉openEuler 22.03 LTS-部署k8sv1.03.1

1.設置ip # vi /etc/sysconfig/network-scripts/ifcfg-ens32 TYPEEthernet PROXY_METHODnone BROWSER_ONLYno BOOTPROTOstatic DEFROUTEyes IPV4_FAILURE_FATALno #IPV6INITyes #IPV6_AUTOCONFyes #IPV6_DEFROUTEyes #IPV6_FAILURE_FATALno #IPV6_ADDR_GEN_MODEeui64 NAMEens1…

物聯網數據解析實戰:掌握CJSON庫核心函數,精準處理JSON數據

物聯網數據解析實戰:掌握CJSON庫核心函數,精準處理JSON數據 CJSON庫是一個輕量級的JSON解析庫,專為C語言設計,適用于嵌入式系統和物聯網應用。它提供了簡單易用的API,使得開發者能夠輕松地解析和生成JSON數據。在本教…

部署Gunicorn + Flask應用到Docker

部署Gunicorn Flask應用到Docker中涉及幾個步驟,下面是一個基本的指南: 1. 創建Flask應用 首先,確保你有一個可用的Flask應用。這里有一個簡單的示例: from flask import Flask app Flask(__name__)app.route(/) def hello_w…

pandas,dataframe使用筆記

目錄 新建一個dataframe不帶列名帶列名 dataframe添加一行內容查看dataframe某列的數據類型新建dataframe時設置了列名,則數據類型為object dataframe的保存保存為csv文件保存為excel文件 dataframe屬于pandas 新建一個dataframe 不帶列名 df pd.DataFrame() 帶…

GuLi商城-商品服務-API-品牌管理-效果優化與快速顯示開關

<template><div class"mod-config"><el-form :inline"true" :model"dataForm" keyup.enter.native"getDataList()"><el-form-item><el-input v-model"dataForm.key" placeholder"參數名&qu…

華為交換機 LACP協議

華為交換機支持的LACP協議&#xff0c;即鏈路聚合控制協議&#xff0c;是一種基于IEEE 802.3ad標準的動態鏈路聚合與解聚合的協議。它允許設備根據自身配置自動形成聚合鏈路并啟動聚合鏈路收發數據。 在LACP模式下&#xff0c;鏈路聚合組能夠自動調整鏈路聚合&#xff0c;維護…

java集合(1)

目錄 一.集合概述 二. 集合體系概述 1. Collection接口 1.1 List接口 1.2 Set接口 2. Map接口 三. ArrayList 1.ArrayList常用方法 2.ArrayList遍歷 2.1 for循環 2.2 增強for循環 2.3 迭代器遍歷 一.集合概述 我們經常需要存儲一些數據類型相同的元素,之前我們學過…

Java 基礎語法

Java 是一種面向對象的編程語言&#xff0c;具有簡單、健壯、安全、跨平臺等特點。下面是Java基礎語法的詳細介紹&#xff0c;并附帶一些示例說明&#xff1a; ### 1. 變量和數據類型 Java 中的變量用于存儲數據&#xff0c;必須先聲明后使用。Java 的數據類型分為基本數據類…

C++ 仿QT信號槽二

// 實現原理 // 每個signal映射到bitset位&#xff0c;全集 // 每個slot做為signal的bitset子集 // signal全集觸發&#xff0c;標志位有效 // flip將觸發事件隊列前置 // slot檢測智能指針全集觸發的標志位&#xff0c;主動運行子集綁定的函數 // 下一幀對bitset全集進行觸發清…

【C++】 解決 C++ 語言報錯:Segmentation Fault

文章目錄 引言 段錯誤&#xff08;Segmentation Fault&#xff09;是 C 編程中常見且令人頭疼的錯誤之一。段錯誤通常發生在程序試圖訪問未被允許的內存區域時&#xff0c;導致程序崩潰。本文將深入探討段錯誤的產生原因、檢測方法及其預防和解決方案&#xff0c;幫助開發者在…

Lex Fridman Podcast with Andrej Karpathy

我不太喜歡Lex Fridman的聲音&#xff0c;總覺得那讓人昏昏欲睡&#xff0c; 但無奈他采訪的人都太大牌了&#xff0c;只能去聽。但是聽著聽著&#xff0c;就會覺得有深度的采訪這些人&#xff0c;似乎也只有他這種由研究員背景的人能干&#xff0c; 另&#xff0c;他提的問題確…

4.2 投影

一、投影和投影矩陣 我們以下面兩個問題開始&#xff0c;問題一是為了展示投影是很容易視覺化的&#xff0c;問題二是關于 “投影矩陣”&#xff08;projection matrices&#xff09;—— 對稱矩陣且 P 2 P P^2P P2P。 b \boldsymbol b b 的投影是 P b P\boldsymbol b Pb。…

android的dump_processe中anon和swap字段的含義是什么?計算進程占用內存大小是否可以用這兩個字段相加?

在Android系統中&#xff0c;dump_processes 命令或類似機制&#xff08;如通過 adb shell dumpsys&#xff09;的輸出中&#xff0c;可能會包含與進程內存使用相關的信息&#xff0c;但通常不直接以 anon 和 swap 作為字段名。不過&#xff0c;基于您的提問&#xff0c;我可以…

嵌入式學習——硬件(Linux內核驅動編程LED、蜂鳴器、按鍵)——day59

1. 編寫LED驅動&#xff08;初始化所有子設備號&#xff09; #include <linux/init.h> #include <linux/module.h> #include <linux/kernel.h> #include <linux/fs.h> #include <asm/uaccess.h> #include <asm/io.h>#define GPBCON (0x5…