我需要在动态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((函数。