playwright中定位元素的方法

简介: playwright中定位元素的方法

playwright中定位元素的方法

1. page.$(selector)

该方法接受一个 CSS 选择器作为参数,并返回与选择器匹配的第一个元素。如果不存在匹配的元素,则返回 null。该方法常常用于选取指定 ID 或 class 的元素。

image.png

注意,该方法会根据 DOM 树中元素出现的顺序进行匹配,因此如果选择器可以匹配到多个元素,只会返回第一个匹配的元素。

通常情况下,page.$ 方法可以和其他方法一起使用,以实现更复杂的元素操作。

2. page.$$(selector)

该方法接受一个 CSS 选择器作为参数,并返回一个包含所有与选择器匹配的元素的数组。如果不存在匹配的元素,则返回空数组。

image.png

注意,该方法返回的数组中的元素顺序与它们在 DOM 树中出现的顺序相同。

3. page.locator(selector)

该方法创建一个 Locator 对象,可以用于更复杂的元素定位操作。该方法接受一个 CSS 选择器或 XPath 表达式作为参数,并返回一个 Locator 对象。

以下是使用 Locator 对象的示例:

image.png

由于 Locator 对象只是创建定位器的语法糖,所以它支持所有定位元素的方法和操作。

4. page.waitForSelector(selector[, options])

该方法等待指定的 CSS 选择器匹配的元素出现在页面上。该方法接受一个 CSS 选择器作为参数,以及可选的 options 参数,返回一个 Promise,该 Promise 会在元素出现或者超时之后 resolve。

 

以下是使用 page.waitForSelector 方法的示例:

image.png

options 参数可以包含以下项:

· visible:一个布尔值,指示元素是否必须可见。默认为 false

· hidden:一个布尔值,指示元素是否必须隐藏。默认为 false

· timeout:等待超时时间(以毫秒为单位)。默认为 30 秒。

该方法适用于需要等待特定元素出现的场景,如在页面刷新后等待加载完成的元素。

5. page.waitForFunction(pageFunction[, options[, ...args]])

该方法使用指定的匿名函数或字符串表达式进行定位,并返回一个 Promise,该 Promise 在函数返回 true 或者超时时 resolve。

 

以下是使用 page.waitForFunction 方法的示例:

image.png

options 参数可以包含以下项:

· polling:检查函数的间隔时间(以毫秒为单位)。默认为 1 秒。

· timeout:等待超时时间(以毫秒为单位)。默认为 30 秒。

该方法适用于需要等待复杂或动态生成的元素出现的场景,如等待 AJAX 请求完成后显示的元素。

总结

在 Playwright 中,有多种方式可以选择和定位元素,每种方式都可以使用 CSS 选择器或 XPath 表达式进行选择,使开发者可以根据自己的需求和场景进行选择。

 

目录
相关文章
|
8月前
|
前端开发 JavaScript
cypress 如何定位元素?
cypress 如何定位元素?
186 0
cypress 如何定位元素?
|
2月前
|
数据采集 前端开发 JavaScript
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
本文介绍了如何使用 Puppeteer 结合 CSS 选择器抓取动态网页中的关键元素,以亚航网站的特价机票信息为例,通过设置代理 IP、User-Agent 和 Cookie 等技术手段,有效提升爬虫策略,实现高效、稳定的爬取。
捕捉页面的关键元素:用CSS选择器与Puppeteer自动抓取
|
3月前
|
数据采集 前端开发 测试技术
Selenium中定位元素的9种方法
在Selenium中,定位页面元素是自动化测试和网页爬虫的基础。常用的9种元素定位方法包括:ID、Name、Class Name、Tag Name、CSS Selector、XPath、Link Text、Partial Link Text,以及XPath和CSS选择器的组合使用。每种方法各有优劣,建议根据页面的具体情况和元素的属性选择最合适的方法,并使用显式等待确保元素可用。
527 5
|
8月前
|
JavaScript 测试技术
Selenium报错ElementNotInteractableException元素不可交互,该如何解决?
本文介绍了Selenium测试中遇到的`ElementNotInteractableException`异常,该异常通常由于元素被遮挡、不可见、被禁用或位于框架内导致。解决方法包括等待元素可交互、确保元素可见、检查元素状态及切换到正确框架。示例代码展示了如何使用显式等待策略处理此异常,以提高测试稳定性。
|
Web App开发 前端开发 JavaScript
Selenium 如何定位 JavaScript 动态生成的页面元素
Selenium 是一个自动化测试工具,可以用来模拟浏览器的操作,如点击、输入、滚动等。但是有时候,我们需要定位的页面元素并不是一开始就存在的,而是由 JavaScript 动态生成的。这时候,如果我们直接用 Selenium 的 find_element 方法去定位元素,可能会出现找不到元素的错误,因为页面还没有加载完成。为了解决这个问题,我们需要使用一些特定的定位技巧,让 Selenium 等待元素出现后再进行操作。
561 0
|
前端开发 测试技术 开发者
selenium-元素的定位
selenium-元素的定位
|
JavaScript
selenium--高亮显示正在操作的元素
selenium--高亮显示正在操作的元素
|
前端开发
selenium--页面元素相关的操作
selenium--页面元素相关的操作
selenium--页面元素是否可见和可操作
selenium--页面元素是否可见和可操作
|
JavaScript 前端开发 程序员
761.【技术】Selenium元素可定位,但不可操作,原因有哪些?--chatGTP
761.【技术】Selenium元素可定位,但不可操作,原因有哪些?--chatGTP
265 0