在 Python 的 Playwright 中,如何使用 QuerySelector 匹配标签内的部分文本?

In Playwright for Python, how do I use a QuerySelector to match partial text inside a tag?

我正在尝试使用部分文本匹配具有多个 h1 标签的页面上的 H1 标签。

对于此示例,文本是“您的预订是”

<header data-v-20d51c72="" data-v-3cdc5826="" class="default__title">
   <h1 data-v-20d51c72="" data-v-3cdc5826="" class="default__title">Your booking was unsuccessful.</h1>
</header>

我可以这样对着全文定位

 page.querySelector('//h1[normalize-space()="Your booking was unsuccessful."]')

我还可以获得所有 h1 标签的列表,然后检查所有的 innerHTML

 [handle for handle in page.querySelectorAll('//h1') if handle.innerHTML().startswith('Your booking was')]

但是这样一来,我就等不及句柄的出现了。

我如何编写一个选择器,以便我可以匹配部分标签,以便我可以在其上使用 page.WaitForSelector()

根据 this SO question 的提示,一个有效的选择器是

handle = page.querySelector('//h1[contains(., "Your booking was")]')

在哪里

print(handle.innerHTML())

打印'Your booking was unsuccessful.'