新的第一条测试用例

时间:2025-10-27 06:19:41  阅读量:  分类:标签:


from playwright.sync_api import Page  #引入pw里面的同步api功能 里面的page功能
#在pw框架中如果定义的函数以test开头,他就会认为你定义的这个函数是一条默认的测试用例。
#你定义的这个函数,同时也是一个测试用例。
def test_baidu(page:Page):
    page.goto(url="https://www.baidu.com")
    page.wait_for_timeout(5000)

#test_baidu()里面你可以传入一个参数,这个参数是固定的,pytest里面提供了一个叫fixture,就是夹具的东西,我们可以共夹具里面创建一个page出来,这个page是在 pytest-playwright 这个 pytest 插件里边去产生出来的,后面会慢慢讲。


page只是一个类,page类里面有一些使用的属性,必须在参数后面加上这个类的属性使用方法。

例如。test_baidu(page:Page):

这个时候,就相当于在page类上加入了一个Page属性,这个时候你加用page.点.后面就会跟上它对应的使用方法。


page.gotu()里面可以传入url等方法。

page.gotu 有以下方法:

self: Page, url: str, *, timeout: float | None = None, wait_until: Literal["commit", "domcontentloaded", "load", "networkidle"] | None = None, referer: str | None = None

常用方法:第一个默认参数可以传入url

page.goto(url="https://www.baidu.com")  
其实也可以省略url这么写。
page.goto("https://www.baidu.com")

  因为url是page.goto的第一个默认参数,所以可以省略url=


 page.wait_for_timeout()   #相当于python中的time_sleep意思一样的,只是在pw中,不可以使用sleep,因为pw不支持会程序报错,pw中有一些异步的写法,如果你用了sleep会阻碍pw的运行会报错,pw自己开发了一个睡眠的函数,里面的值是毫秒,也必须要使用 page.wait_for_timeout()

page.wait_for_timeout(5000)  #例如这个就是让程序休眠5秒  


可以尝试运行下代码:效果就是打开百度停留5秒

from playwright.sync_api import Page
def test_baidu(page:Page):
    page.goto(url="https://www.baidu.com")
    page.wait_for_timeout(5000)

程序运行的时候,我们发现什么都没有,是因为pw在运行中默认是无头模式:后台运行,不显示浏览器。

如果你想让他程序在界面显示,可以打开终端-在终端中输入

pytest --headed 你的文件名.py

这样就可以看到测试正常通过了。