语法错误:无法在“文档”上执行“评估”:字符串“ // img [contains('1236548597')]”不是有效的XPath表达式

时间:2018-08-29 05:01:16

标签: python python-3.x selenium selenium-webdriver xpath

我收到语法错误:

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//img[contains('1236548597')]' is not a valid XPath expression.

我的代码:

enter_chat = driver.find_element_by_xpath("//img[contains('1236548597')]")
enter_chat.click()

2 个答案:

答案 0 :(得分:0)

应该是

enter_chat = driver.find_element_by_xpath("//img[contains(text(),'1236548597')]")
enter_chat.click()

if "//img[contains(text(),'1236548597')]" not work, 
try "//img[contains(.,'1236548597')]"

您错过了text()函数。

答案 1 :(得分:0)

此错误消息...

SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//img[contains('1236548597')]' is not a valid XPath expression.

...表示您使用的 XPath 不是有效的 XPath 表达式。

在您的代码试用中,带有contains()函数的谓词有问题。

  • contains()接受两个参数。第一个参数始终是要测试的属性,第二个参数是要查找的 value 。第一个参数应该是属性,其中包含值 1236548597

    enter_chat = driver.find_element_by_xpath("//img[contains(@<attributeName>,'1236548597')]")
    

如果没有相关的HTML,就很难构建答案。但是,两种可能的解决方案如下:

  • 如果标签是<a>标签,并且包含img 属性,标签中包含值 1236548597

    enter_chat = driver.find_element_by_xpath("//a[contains(@img,'1236548597')]")
    
  • 如果标签是<img>标签,并且包含src 属性,标签中包含值 1236548597

    enter_chat = driver.find_element_by_xpath("//img[contains(@src,'1236548597')]")