python playwright之元素定位示例详解

 更新时间:2022年07月23日 14:11:25   作者:莫离  
这篇文章主要为大家介绍了python playwright之元素定位示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

定位篇

UI 自动化很多时候的苦恼都是定位不到,其实说实话我到现在有时候也是莫名其妙的定位到或者定位不到。好在这个框架定位方式的上限非常以及特别的高,这就像人有钱和没钱的区别主要在于选择权一样,有选择的人生才是幸福的。出门想开法拉利就开法拉利,想开拖拉机就开拖拉机。

定位的详细介绍

1、官方是不推荐 xpath 和 css 的,原话意思是 CSS 和 XPATH 是绑定于 DOM 上的,当 DOM 结构出现更改他们将失效。

2、文本内容,输入框内的 placeholder,labels 等这些我们可以理解成面向业务的属性这些反而不那么容易改变所以定位应该尽量的去面向业务。

文本选择器定位

下文这样是一个基础的文本定位 特点有

1、模糊匹配

2、不缺分英文的大小写

3、如果存在多个会报错

page.locator("text=社区").click()

也可以使用简写的方式,注意其中的单引号

page.locator("'Log in'").click()

比较精准的方式,点击 id=main-nav-menu 包含的元素里文本='社区'的元素,这里使用了 text() 伪类

page.locator("#main-nav-menu :text('社区')").click()

结合 CSS 使用,仅匹配 article 元素

page.locator('article:has-text("All products")').click()

CSS 选择器定位

点击 button 按钮

page.locator("button").click()

通过属性定位,点击属性中存在 href="/topics"的元素

page.locator('[href="/topics" rel="external nofollow"  rel="external nofollow" ]').click()

通过属性精准定位:点击 ID=nav-bar 元素下的 href="/topics"的元素

page.locator('#main-nav-menu [href="/topics" rel="external nofollow"  rel="external nofollow" ]').click()

通过 placeholder 定位以及输入

page.locator('[placeholder="搜索"]').fill('电子校的故事')

布局定位结合 CSS,也是我最喜欢的

page.locator("input:right-of(:text('开源项目'))").fill('电子校的故事')

非常的实用,尤其是在我们经常测的管理系统里边 dialog 里,只要左侧的 label 不变~ 代码就不用改

解释下上边这段代码,大家一边看代码一边把头往显示器的右上偏左侧看下。

定位的的呢是一个 Input,一个在文本为'开源项目'右侧的 input。

同理这里可以使用:right-of、:left-of、:above、:below、:near 这几种布局定位的方式

根据元素可用

点击一个可用的 button

page.locator("button:visible").click()
page.locator("button >> visible=true").click()

继续说说属性

点击一个按钮,它的文本包含了 Click me。另这里也可使用正则表达式

page.locator("button", has_text="Click me").click()

以上就是python playwright之元素定位示例详解的详细内容,更多关于python playwright元素定位的资料请关注脚本之家其它相关文章!

相关文章

  • Python守护进程和脚本单例运行详解

    Python守护进程和脚本单例运行详解

    本篇文章主要介绍了Python守护进程和脚本单例运行,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Python基于BeautifulSoup爬取京东商品信息

    Python基于BeautifulSoup爬取京东商品信息

    这篇文章主要介绍了Python基于BeautifulSoup爬取京东商品信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • Python使用redis pool的一种单例实现方式

    Python使用redis pool的一种单例实现方式

    这篇文章主要介绍了Python使用redis pool的一种单例实现方式,结合实例形式分析了Python操作redis模块实现共享同一个连接池的相关技巧,需要的朋友可以参考下
    2016-04-04
  • Python如何使用pymongo连接MongoDB数据库并进行相关操作

    Python如何使用pymongo连接MongoDB数据库并进行相关操作

    PyMongo是驱动程序,使python程序能够使用Mongodb数据库,使用python编写而成,下面这篇文章主要给大家介绍了关于Python如何使用pymongo连接MongoDB数据库并进行相关操作的相关资料,需要的朋友可以参考下
    2023-05-05
  • 跟老齐学Python之不要红头文件(1)

    跟老齐学Python之不要红头文件(1)

    红头文件,是某国特别色的东西,在python里不需要,python里要处理的是计算机中的文件,包括文本的、图片的、音频的、视频的等等,还有不少没见过的扩展名的,文件,在python中,是一种对象,就如同已经学习过的字符串、数字等一样。
    2014-09-09
  • 简单的Apache+FastCGI+Django配置指南

    简单的Apache+FastCGI+Django配置指南

    这篇文章主要介绍了简单的Apache+FastCGI+Django配置指南,这也是Python上最流行的web框架Django的最流行搭配环境:)需要的朋友可以参考下
    2015-07-07
  • 基于Python编写一个语音合成系统

    基于Python编写一个语音合成系统

    这篇文章主要介绍了如何利用Python制作一个语音合成系统,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的小伙伴可以了解一下
    2022-03-03
  • Pytorch中关于BatchNorm2d的参数解释

    Pytorch中关于BatchNorm2d的参数解释

    这篇文章主要介绍了Pytorch中关于BatchNorm2d的参数解释,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 详解pycharm连接不上mysql数据库的解决办法

    详解pycharm连接不上mysql数据库的解决办法

    这篇文章主要介绍了详解pycharm连接不上mysql数据库的解决办法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • AI与Python人工智能遗传算法

    AI与Python人工智能遗传算法

    这篇文章主要为大家介绍了AI与Python人工智能遗传算法的详解教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05

最新评论