如何使用木偶师单击动态 xpath?



我需要在动态xpath上单击木偶师,但我无法实现匹配路径。

这是我需要单击的动态路径


//[@id="Pfb41b20eb4b64727b5db3b2abea2187d_1_oReportCell"]/table/tbody/tr/td/table[2]/tbody/tr[3]/td[1]/div/a

动态部分在 P 之后开始,在第一个 _

这就是我迄今为止尝试过的


const download = await page.$x('//id[contains("1_oReportCell")]/table/tbody/tr/td/table[2]/tbody/tr[3]/td[1]/div/a');
const download = await page.$x('//*[@id^="P"][@id$="_oReportCell"]/table/tbody/tr/td/table[2]/tbody/tr[3]/td[1]/div/a
');

请有人帮我。

在 XPath 1.0 中,ends-with((函数可以表示为:

substring($string, string-length($string) - string-length($pattern) + 1) = $pattern

在您的 XPath 表达式中:

//[substring(@id, string-length(@id) - 12) = "1_oReportCell"]/table/tbody/tr/td/table[2]/tbody/tr[3]/td[1]/div/a

编辑:当然,XPath 2.0+有一个适当的ends-with((函数。

最新更新