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()

 

posted @ 2023-10-07 14:12  keena_jiao  阅读(502)  评论(0编辑  收藏  举报