【playwright+python】元素定位

今天介绍用class 和 id 以外的其他方法来定位元素

用属性定位

在这里插入图片描述

page.locator('[src="https://img1.doubanio.com/dae/niffler/niffler/images/c8874c4a-1b56-11ec-9135-26f150e6ae79.jpg"]')

Locate by alt text

<img src="https://img3.doubanio.com/dae/niffler/niffler/images/1f2f02f2-63a2-11ec-92b3-1686c25e428a.jpg" alt="工作之苦——解决2020年代的工作新问题">
locater_by_alt = page.get_by_alt_text("工作之苦——解决2020年代的工作新问题")

Locate by placeholder

 <input type="text" maxlength="60" size="12" placeholder="书籍、电影、音乐、小组、小站、成员" name="q" autocomplete="off">
locater_by_placeholder = page.get_by_placeholder("书籍、电影、音乐、小组、小站、成员")

Locate by text

<span class="rec_topics_subtitle">新话题</span>
locater_by_role = page.get_by_text("新话题")

Locate by title

<div class="site-name" title="豆瓣网" style="display: inline-block; line-height: 24px; height: 24px; margin-top: 4px;margin-right: 24px;width: 73px;background-image: url(https://img1.doubanio.com/f/sns/714b8751a533ef592bea5cd4603dbb9e713ded61/pics/sns/sitename.png);background-size: contain; background-repeat: no-repeat;text-indent: -999em;">
      豆瓣网
    </div>
page.get_by_title("豆瓣网")

Filter by text

li

page.get_by_role("listitem").filter(has_text="豆瓣音乐");
page.get_by_role("listitem").filter(has_not_text="豆瓣音乐")
page.get_by_role("listitem").filter(has=page.locator('[href="https://www.douban.com/group/"]'))
        ]

N-th element locator

当返回一组元素时,用这个方法定位到其中的某一个
在这里插入图片描述

#索引从第0个开始,所以要定位第六个元素时nth=5
page.locator('div.pic img').locator('nth=5')

用以上语句定位元素并加上蒙版成功
定位并加蒙版成功

点击第一个button

page.locator("button").locator("nth=0").click()

点击最后一个button

page.locator("button").locator("nth=-1").click()
  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在使用Python Playwright进行元素定位时,可以使用多种方法。其,可以通过CSS选择器(CSS selector)、XPath选择器(XPath selector)、HTML属性(如id、data-test-id)或者文本内容来定位元素。与Selenium不同的是,除了XPath选择器外,所有选择器默认都是指向shadow DOM的,如果要指向常规DOM,可以使用*:light。但通常情况下不需要使用这个特性。此外,Playwright还提供了一些内置的定位器,如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属性进行元素定位123 #### 引用[.reference_title] - *1* [Playwright自动化测试工具之元素定位实战](https://blog.csdn.net/xqtesting/article/details/115336845)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [python+playwright 学习-2.Selector 选择器定位元素](https://blog.csdn.net/qq_27371025/article/details/129219959)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值