如何等待多个选择器?

Pal*_*ron 7 playwright

例如,我正在测试一个搜索页面,它将显示结果编号.text > span:nth-child(1)

但是,如果没有任何结果,则仅显示text="nothing".text > span:nth-child(1)不存在。

那么我怎样才能同时满足这两个条件呢?

Yev*_*kov 15

您需要使用以逗号分隔的 CSS 选择器列表,它将匹配该列表中的选择器之一可以选择的所有元素:

\n
//                                           \xe2\x86\x93 comma\nawait page.locator(\'.text > span:nth-child(1), span:has-text("nothing")\').innerText();\n
Run Code Online (Sandbox Code Playgroud)\n

它将等待.text > span:nth-child(1)span:has-text("nothing")

\n

  • @ChristianBaumann,可以通过找到的“innerText”来弄清楚。如果文本为“无”,则找到第二个元素。在更复杂的情况下,大多数情况下,检查“locator”返回的处理程序就足够了。 (2认同)
  • 如果使用 XPath 表示法,请使用竖线而不是逗号。 (2认同)