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

问题描述

我正在尝试使用部分文本匹配具有多个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())

打印“您的预订不成功。”