【问题标题】:SyntaxError: Failed to execute 'evaluate' on 'Document': The string '//img[contains('1236548597')]' is not a valid XPath expressionSyntaxError:无法对“文档”执行“评估”:字符串“//img [包含('1236548597')]'不是有效的XPath表达式
【发布时间】:2019-02-03 18:57:56
【问题描述】:

我收到语法错误:

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

【问题讨论】:

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


    【解决方案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,很难构建答案。然而,两种可能的解决方案如下:

    • 如果标签是&lt;a&gt;标签,包含img 属性包含值1236548597

      enter_chat = driver.find_element_by_xpath("//a[contains(@img,'1236548597')]")
      
    • 如果标签是&lt;img&gt;标签,包含src 属性包含值1236548597

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

    【讨论】:

      【解决方案2】:

      应该是,

      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() 函数。

      【讨论】:

        猜你喜欢
        • 2021-02-19
        • 2019-12-25
        • 2021-08-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-07
        • 2015-05-08
        • 1970-01-01
        相关资源
        最近更新 更多