如何在 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()
    }
}