get_by_placeholder 允许我们根据输入框的 placeholder 属性来查找元素。这对于使用占位符文本作为提示的输入框非常有用。
如上图,导航百度一下--登录操作,对账号和密码输入框进行检查,在源码页面会看到类似:placeholder="手机号/用户名/邮箱"、placeholder="密码" 的代码,也就是本文开头提到的使用占位符文本作为提示的输入框,对这类输入框我们可以使用get_by_placeholder方法来进行高效的查找工作。代码如下:
from playwright.sync_api import Page
def test_input_loginbaidu(page: Page): # 输入框 常见如账号密码
page.goto('https://www.baidu.com', wait_until='networkidle')
page.locator("//*[@id='s-top-loginbtn']").click() #定位到登录并点击
page.get_by_placeholder("手机号/用户名/邮箱").fill("123456") # 输入账号123456
page.get_by_placeholder("密码").fill("123456") # 输入密码123456
运行可实现如下图的效果:
这样语义化的查询方法使得测试脚本更加直观,同时也提高了测试的稳定性,因为即使页面布局发生变化,只要 placeholder 文本没有改变,我们仍然能够正确找到目标元素