问题描述
我正在尝试使用部分文本匹配具有多个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())
打印“您的预订不成功。”