一尘不染

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

selenium

我收到语法错误:

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()

阅读 1498

收藏
2020-06-26

共1个答案

一尘不染

此错误消息…

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

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

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

  • contains()接受两个参数。第一个参数始终是要测试的 属性 ,第二个参数是要查找的 。第一个参数应该是包含值 1236548597*属性*
    enter_chat = driver.find_element_by_xpath("//img[contains(@<attributeName>,'1236548597')]")
    

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

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

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

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