playwright:get_by_text()操作

时间:2025-11-01 20:14:25  阅读量:  分类:标签:

课程总结:

1.goto:可在url后面添加一个元素wait_until="networkidle" 表示若五百毫秒内没有新的网络请求 才会继续执行操作

2.get_by_text:默认的文本为包含方式,不适用于存在多个相似内容的情况,这种情况下如果想要精确查找,就在文本后面加exact=True---"百度一下",exact=True

3.若存在打开新页面的情况,需要使用with来获取新打开页面的内容,保存为new_page(with page.expect_popup() as new_page:) with内包含内容为你要点击的跳转新页面的值。再通过获取new_page的value,创建一个新的页面(page_new=new_page.value)

4.在断言时,存在一些元素可见,但是此时并不可用,这时候不使用visible 而是使用to_be_attached


上一节讲到,想要点击必须给页面赋值加载的时间,然后再点击,可以直接这样写。

from playwright.sync_api import Page,expect
def test_pw_click(page:Page):
    page.goto("/demo/button",wait_until="networkidle")   #wait_until=networkidle表示若五百毫秒内没有新的网络请求 才会继续执行后续操作
    # page.wait_for_timeout(500)   #所以这句话就可以注销了。
    page.get_by_text("点击我试试1").click()
    expect(page.get_by_text("点击成功1")).to_be_visible()
    page #加断点用的。

点击网页链接,在当前页面跳转到百度

from playwright.sync_api import Page,expect
def test_new_page(page:Page):
    page.goto("/demo/link",wait_until="networkidle")
    page.get_by_text("本页跳转到百度").click()
    page  #打断点用。

加断言

from playwright.sync_api import Page,expect
def test_new_page(page:Page):
    page.goto("/demo/link",wait_until="networkidle")
    page.get_by_text("本页跳转到百度").click()
    #exact=True的意思是精确匹配,断言只能是唯一,但是页面中有两个字符串包含百度一下
    #还有一串文字叫,百度一下你会更好,True代表精确匹配断言,只匹配百度一下,是否是存在一个,其他什么百度一下你会更好,百度一下你会知道,什么的都不算。
    expect(page.get_by_text("百度一下",exact=True)).to_be_visible()    
    page  #打断点用

新页面打开淘宝,加断言

from playwright.sync_api import Page,expect
def test_new_page(page:Page):
    page.goto("/demo/link",wait_until="networkidle")
    page.get_by_text("本页跳转到百度").click()
    expect(page.get_by_text("百度一下",exact=True)).to_be_visible()
    page.goto("/demo/link",wait_until="networkidle")
    #用with去监听我们这个page里面弹出的新页面重命名为new_page
    with page.expect_popup() as new_page:
        page.get_by_text("新页面跳转到淘宝").click()
    #拿到这个对象以后进行.value操作
    page_new=new_page.value
    # 断言、用css定位断言、to_be_attached()含义就是不一定在页面显示,在网页源码中出现就可以。
    expect(page_new.locator(".search-button")).to_be_attached()
    page  #加断点