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