如何使用playwright在已有浏览器上进行自动化操作
第一步,需要关闭所有谷歌浏览器
第二步,cmd内输入
"C:\Program Files\Google\Chrome\Application\chrome.exe" --remote-debugging-port=9222 --user-data-dir="C:\chrome_debug"系统会打开浏览器,然后在浏览器内打开需要操作的网址
第三步,编写代码,先提供简易版本,这里模拟的是点击打开页面中的“店铺”菜单
from playwright.sync_api import sync_playwright import time with sync_playwright() as p: # 连接到调试模式的 Chrome browser = p.chromium.connect_over_cdp("http://localhost:9222") pages = browser.contexts[0].pages if browser.contexts else [] page = pages[0] page.wait_for_load_state('networkidle') element = page.locator("li.menu-item span[slot='title']:has-text('店铺')") element.click() print("通过CSS选择器点击成功")
加入校验、对象化
from playwright.sync_api import sync_playwright import time def click_element_via_existing_browser(): """ 连接到已打开的Chrome浏览器并点击元素 """ try: with sync_playwright() as p: # 连接到已打开的Chrome浏览器 browser = p.chromium.connect_over_cdp("http://localhost:9222") # 获取第一个页面(通常是你已经打开的页面) pages = browser.contexts[0].pages if browser.contexts else [] if not pages: print("未找到已打开的页面") return page = pages[0] # 等待页面加载完成 page.wait_for_load_state('networkidle') # 方法1:通过CSS选择器点击 try: element = page.locator("li.menu-item span[slot='title']:has-text('店铺')") element.click() print("通过CSS选择器点击成功") return except Exception as e: print(f"CSS选择器点击失败: {e}") # 方法2:通过XPath点击(备选) try: element = page.locator("xpath=//li[contains(@class, 'menu-item')]//span[@slot='title' and text()='店铺']") element.click() print("通过XPath点击成功") return except Exception as e: print(f"XPath点击失败: {e}") # 方法3:通过文本内容点击 try: element = page.locator("text=店铺") element.click() print("通过文本点击成功") return except Exception as e: print(f"文本点击失败: {e}") except Exception as e: print(f"连接浏览器失败: {e}") # 运行脚本 if __name__ == "__main__": click_element_via_existing_browser()
第四步,具体如何在页面进行操作,比如筛选、匹配、查询,点击等,可以查查playwright的用法,网上很多,跟selenium很像的一个ui自动化工具
对了,playwright是可以录制操作步骤生成脚本的
浙公网安备 33010602011771号