《最新出炉》系列小成篇-Python+Playwright自动化测试-69-Playwright的一些基本操作汇总

371 阅读3分钟

1.简介

写了这么多篇,回过头来看,居然漏掉最基本的一些操作了,因为觉得简单,所以开始就没有留意,想当然觉得大家都知道、都学会了,但是有人私信问到一些类似的问题,最后决定还是写一篇汇总来讲解和分享一些常用的基本操作。毕竟是:万丈高楼平地起,一砖一瓦皆根基。学习也是相似的,夯实基础,才能走得更远。好了废话少说,直奔主题!

2.基本操作

其实有些基本操作:鼠标悬停、鼠标拖拽、iframe定位、select选择框、截图、文件上传和下载、checkbox和radio、日历控件、多窗口切换等等已经在之前文章中以整篇或者多篇的文章已经介绍过了,宏哥这里就将一些没有介绍过的进行补充介绍一下。

2.1t模拟输入

1.type模拟人工输入:一个字符一个字符地输入字段, 模拟真实的键盘输入。

page.get_by_placeholder('手机号或邮箱').type('1760123456',delay=1000) #delay 是设置输入延迟时间,不然眼睛会看不到效果

2.fill输入文字

fill()#输入文字

2.2查找元素

page.locator()#元素定位器

page.get_by_text("文本内容")#查找文本匹配的元素

page.get_by_role("button")#get_by_role是一个查找页面元素的方法,代表要查找的元素的角色或类型

2.3模拟点击相关

# 点击
page.get_by_role("button").click()

# 双击
page.get_by_text("Item").dblclick()

# 右击
page.get_by_text("Item").click(button="right")

# Shift + 点击
page.get_by_text("Item").click(modifiers=["Shift"])

# 鼠标悬停在元素上
page.get_by_text("Item").hover()

# 点击左上角
page.get_by_text("Item").click(position={ "x": 0, "y": 0})

2.4获取元素文本

inner_text()#获取元素的文本内容

2.5等待时间

page.wait_for_timeout(2000)#强制等待2秒

2.6模拟键盘按钮

# 按Enter键
page.get_by_text("Submit").press("Enter")

# 在键盘上按$符号
page.get_by_role("textbox").press("$")

2.7获取元素属性

page.locator('#s-top-left>a').get_attribute() #获取元素属性

2.8获取input 输入框的值

可以通过input_value() 方法获取输入框的内容。

# 获取输入框的值
input1 = page.locator('#kw')
input1.fill('北京-宏哥')
print(input1.input_value())

3.趁热打铁

 首先访问百度,然后在输入框中输入“北京宏哥”,获取百度一下按钮的属性,回车查询“北京宏哥”后,获取input输入框的内容,最后退出浏览器。

3.1代码设计

3.2参考代码

# coding=utf-8🔥

# 1.先设置编码,utf-8可支持中英文,如上,一般放在第一行

# 2.注释:包括记录创建时间,创建人,项目名称。
'''
Created on 2024-08-18
@author: 北京-宏哥
北京宏哥(微信搜索:北京宏哥,关注宏哥,提前解锁更多测试干货!)
Project: 《最新出炉》系列小成篇-Python+Playwright自动化测试-69-Playwright的一些基本操作汇总
'''

# 3.导入模块
from playwright.sync_api import Playwright, sync_playwright, expect

def run(playwright: Playwright) -> None:

    browser = playwright.chromium.launch(headless=False)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://www.baidu.com")
    page.locator("#kw").type("北京-宏哥",delay=1000)
    attribute = page.locator("#su").get_attribute("type")
    print(attribute)
    page.get_by_text("百度一下").press("Enter")
    input_text = page.locator("#kw").input_value()
    print(input_text)
    page.wait_for_timeout(5000)  # 强制等待5秒
    context.close()
    browser.close()

with sync_playwright() as playwright:
    run(playwright)

3.3运行代码

1.运行代码,右键Run'Test',就可以看到控制台输出,如下图所示:

2.运行代码后电脑端的浏览器的动作。如下图所示:

4.小结

今天主要是对前边一些基础的操作和知识在这里做一个总结,比较简单但是适用,而且常常用到。好了,时间也不早了,宏哥就讲解和分享到这里,感谢您耐心的阅读,希望对您有所帮助。