python+playwright 元素定位
元素定位官方文档:https://playwright.dev/python/docs/locators#lists
元素操作官方文档:https://playwright.dev/python/docs/next/api/class-locator#methods
1、xpath 定位
打开百度网页,点击导航-新闻
# xpah //*[@id="s-top-left"]/a[1] page.click('xpath=//*[@id="s-top-left"]/a[1]') page.click('//*[@id="s-top-left"]/a[1]')
2、CSS定位
打开百度网页,点击百度一下
page.click('#su')
3、定位器函数locator()
打开百度网页,打印定位到百度一下的元素
print(page.locator('#su'))
4、text文本定位
第一种:print(page.locator("text=新闻")) 第二种:print(page.locator("text='新闻'"))
第一个没有对新闻加引号,表示模糊匹配,对大小写不敏感
第二个对新闻加了引号,精确匹配,对大小写敏感
5、selector 选择器组合定位
不同的selector可组合使用,用>>
连接
# id 属性+ css page.fill('form >> #username', "keena") page.fill('form >> [name="password"]', "aa123456") page.click("text=立即登录")
form >> #username 定位方式等价于 page.locator("form").locator('[id="username"]').fill("keena")
6、内置定位器
- page.get_by_role()通过显式和隐式可访问性属性进行定位。
- page.get_by_text()通过文本内容定位。
- page.get_by_label()通过关联标签的文本定位表单控件。
- page.get_by_placeholder()按占位符定位输入。
- page.get_by_alt_text()通过替代文本定位元素,通常是图像。
- page.get_by_title()通过标题属性定位元素。
- page.get_by_test_id()根据data-testid属性定位元素(可以配置其他属性)。
6.1 角色定位 page.get_by_role()
角色定位器包括按钮、复选框、标题、链接、列表、表格等,并遵循ARIA 角色、ARIA 属性和可访问名称的 W3C 规范。
page.get_by_role("button", name="Sign in").click() page.get_by_role("checkbox", name="Subscribe").check()