如何在 PLAYWRIGHT 上使用 SELECTORS 制作条件语句?
How to make CONDITIONAL STATEMENTS using SELECTORS on PLAYWRIGHT?
我需要一些帮助来使用 Playwright 测试来制作条件语句。
我有一个给定的选择器,比如说一个按钮,我需要写一个这样的条件语句:
if (selector is not present/visible)
do nothing and proceed with the *next lines of code*
else
await page.click(*selector*)
*next lines of code*
有什么有效的方法可以做这些事情吗?我在 Playwright 文档中没有找到任何内容。
它可以在 JavaScript 中实现,类似于使用 page.$(selector)
的伪代码,如果指定的元素不在 DOM returns null
=]. (注意:注意条件中圆括号的正确使用!)
我还会将您的初始 if(falsy)...else
条件反转为单个 if(truthy)
,因为您只想在选择器存在时执行命令,else 分支没有太大意义:
if ((await page.$('#elem-id')) !== null) {
await page.click('#elem-id')
}
// code goes on with *next lines of code*
由于 Playwright 建议使用 Locators 而不是 EventHandles (citation),您还可以使用:
async function clickIfNotNull(page, selector){
const yourLocator = await page.locator(selector)
const elementIsNotNull = await yourLocator.evaluate(elem => elem !== null);
if (elementIsNotNull) {
await yourLocator.click()
}
}
我需要一些帮助来使用 Playwright 测试来制作条件语句。
我有一个给定的选择器,比如说一个按钮,我需要写一个这样的条件语句:
if (selector is not present/visible)
do nothing and proceed with the *next lines of code*
else
await page.click(*selector*)
*next lines of code*
有什么有效的方法可以做这些事情吗?我在 Playwright 文档中没有找到任何内容。
它可以在 JavaScript 中实现,类似于使用 page.$(selector)
的伪代码,如果指定的元素不在 DOM returns null
=]. (注意:注意条件中圆括号的正确使用!)
我还会将您的初始 if(falsy)...else
条件反转为单个 if(truthy)
,因为您只想在选择器存在时执行命令,else 分支没有太大意义:
if ((await page.$('#elem-id')) !== null) {
await page.click('#elem-id')
}
// code goes on with *next lines of code*
由于 Playwright 建议使用 Locators 而不是 EventHandles (citation),您还可以使用:
async function clickIfNotNull(page, selector){
const yourLocator = await page.locator(selector)
const elementIsNotNull = await yourLocator.evaluate(elem => elem !== null);
if (elementIsNotNull) {
await yourLocator.click()
}
}