log01-开始
整体框架#
框架如下:
from playwright.sync_api import sync_playwright
def run():
with sync_playwright() as p:
browser = p.chromium.launch(headless=False, channel="msedge") # 设置为 False 可以看到浏览器界面
page = browser.new_page() # 创建一个页面对象
page.goto("https://playwright.dev/") # 访问目标网页
page.click("text=Get started") # 找到需要点击的链接,通过click触发
print(page.title())
input("Press Enter to close the browser...") #通过这个留存浏览器页面
browser.close()
if __name__ == "__main__":
run()一般来说,首先需要创建一个浏览器实例,并可以指定为edge。 设置为False正是我需要的。
在这个example中展示了page元素的几个支持的功能,比如click点击,title标题,goto前往链接。
具体来说说click。
page.click("text=Get started")
其完整版本应该是:
get_started = page.locator("text=Get started")
get_started.click()也就是调用了一个Text Selector定位器,创建了一个locator对象。通过文本快速匹配元素。还可以通过以下这些方法创建locator。
| 定位器类型 | 示例语法 | 描述说明 |
|---|---|---|
| CSS Selector | "css=div.container > button" | 使用标准 CSS 选择器语法 |
| Text Selector | "text=Get started" | 匹配包含指定文本的元素 |
| Role Selector | page.get_by_role("button") | 根据 ARIA 角色定位元素,适合无障碍支持 |
| Label Selector | page.get_by_label("Username") | 根据表单标签定位输入框等控件 |
| Placeholder Selector | page.get_by_placeholder("Search") | 根据输入框的 placeholder 属性定位 |
| Alt Text Selector | page.get_by_alt_text("Logo") | 根据图片的 alt 属性定位 |
| Title Selector | page.get_by_title("Close") | 根据元素的 title 属性定位 |
| Test ID Selector | page.get_by_test_id("submit-btn") | 用于测试专用的 data-testid 属性定位 |
| XPath Selector | "xpath=//button[@id='submit']" | 使用 XPath 表达式定位 |
| ID Selector | "id=submit" | 根据元素 ID 定位 |
Locator对象还支持以下的一些常用操作。
| 方法名 | 描述说明 |
|---|---|
locator.click() | 点击元素 |
locator.check() | 勾选复选框 |
locator.uncheck() | 取消勾选复选框 |
locator.hover() | 鼠标悬停 |
locator.fill(value) | 填充输入框 |
locator.focus() | 聚焦元素 |
locator.press(key) | 模拟按键 |
locator.set_input_files(files) | 上传文件 |
locator.select_option(value) | 选择下拉选项 |
当然也远不止这一些。Locator API还包含这些功能。Playwright Python Locator API