新的第一条测试用例
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
这样就可以看到测试正常通过了。