首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >解锁Playwright新技能:单选框、多选框的操作

解锁Playwright新技能:单选框、多选框的操作

作者头像
小博测试成长之路
发布2024-12-06 11:26:01
发布2024-12-06 11:26:01
4750
举报
文章被收录于专栏:软件测试学习软件测试学习

今日学习笔记

代码语言:javascript
复制

def test_pw_radio(page: Page):
    # 单选框操作
    page.goto("/demo/radio", wait_until="networkidle")
    page.get_by_text("草莓").locator("input").check()
    expect(page.get_by_text("草莓").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)
    page.get_by_text("香蕉").locator("input").check()
    expect(page.get_by_text("香蕉").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)
    page.get_by_text("苹果").locator("input").check()
    expect(page.get_by_text("苹果").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)






def test_pw_checkbox(page: Page):
    # checkbox    check()和set_checked()都可用于选中,也可以用click方法
    page.goto("/demo/checkbox", wait_until="networkidle")
    # page.get_by_text("开发").locator("input").set_checked(True)
    page.get_by_text("开发").locator("input").click()

    expect(page.get_by_text("开发").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)
    page.get_by_text("测试").locator("input").set_checked(True)
    expect(page.get_by_text("测试").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)
    page.get_by_text("美团").locator("input").set_checked(True)
    expect(page.get_by_text("美团").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)

    page.get_by_text("开发").locator("input").set_checked(False)
    expect(page.get_by_text("开发").locator("input")).not_to_be_checked()
    page.wait_for_timeout(1_000)
    page.get_by_text("测试").locator("input").set_checked(False)
    expect(page.get_by_text("测试").locator("input")).not_to_be_checked()
    page.wait_for_timeout(1_000)
    page.get_by_text("美团").locator("input").set_checked(False)
    expect(page.get_by_text("美团").locator("input")).not_to_be_checked()
    page.wait_for_timeout(1_000)

    page.get_by_text("开发").locator("input").check()
    expect(page.get_by_text("开发").locator("input")).to_be_checked()
    page.wait_for_timeout(1_000)





check、set_checked和click有区别吗?


  1. check():
    • 这个方法用于确保复选框被选中。
    • 如果复选框已经是选中状态,check() 将不会执行任何操作。
    • 如果复选框未被选中,check() 将会模拟点击事件来选中它。
    • check() 可以接收一个布尔值参数,如果传入 false,则会取消选中复选框。
  2. set_checked():
    • 这个方法用于直接设置复选框的选中状态,而不需要模拟点击事件。
    • set_checked() 接受一个布尔值参数,如果传入 true,则设置复选框为选中状态;如果传入 false,则设置为未选中状态。
    • 这个方法跳过了点击动作,直接更改复选框的 checked 属性。
  3. click():
    • 这个方法用于模拟鼠标点击事件。
    • 当你调用 click() 时,Playwright 会模拟一个真实的点击操作,这可能触发页面上的其他事件,如点击事件的监听器。
    • 对于复选框来说,如果点击已经选中的复选框,click() 会取消它的选中状态,反之亦然。

    End

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档