在Python (Spyder/Anaconda)中,我有:
ExcelIconXpath = "//*[contains(@id='pagePane0_divBlock0_')]"
ExcelIcon = driver.find_element(by=By.XPATH, value=ExcelIconXpath)
我得到以下错误消息:
由于以下错误,无法找到带有xpath表达式//*
(@id=‘pagePane0_divBlock0_’)的元素: SyntaxError:未能在“文档”上执行“计算”:字符串XPath不是有效的XPath表达式。
发布于 2022-10-08 22:05:05
这不是一个很好的错误信息,对吗?表达式不正确,因为contains()
函数需要两个参数,而且只提供了一个参数。您提供的值是相等比较的结果。
@id='pagePane0_divBlock0_'
这是一个布尔值;将布尔值作为contains()
的输入是没有任何意义的。
您需要决定是否要进行相等比较或子字符串(包含)比较,然后使用其中一个或另一个,而不是将它们混合在一起。
发布于 2022-10-08 18:32:20
正确的xpath表达式是
"//*[contains(@id, 'pagePane0_divBlock0_')]"
下面是xpath的一个很好的介绍:https://www.w3schools.com/xml/xpath_intro.asp
当然,如果您没有等待该元素加载/可点击,则可能还会遇到其他问题(超出原来问题的范围)。
https://stackoverflow.com/questions/73999409
复制相似问题